class RubyLsp::Requests::Formatting
registering the ruby-lsp as the Ruby formatter.
request uses RuboCop to fix auto-correctable offenses in the document. This requires enabling format on save and
The [formatting](microsoft.github.io/language-server-protocol/specification#textDocument_formatting)
def initialize(global_state, document)
def initialize(global_state, document) super() @document = document @active_formatter = global_state.active_formatter #: Support::Formatter? @uri = document.uri #: URI::Generic end
def perform
@override
def perform return unless @active_formatter return if @document.syntax_error? # We don't format erb documents yet formatted_text = @active_formatter.run_formatting(@uri, @document) return unless formatted_text lines = @document.source.lines size = @document.source.size return if formatted_text.size == size && formatted_text == @document.source [ Interface::TextEdit.new( range: Interface::Range.new( start: Interface::Position.new(line: 0, character: 0), end: Interface::Position.new(line: lines.size, character: 0), ), new_text: formatted_text, ), ] end
def provider
def provider true end