Module: Kapusta::LSP::Formatting

Defined in:
lib/kapusta/lsp/formatting.rb

Class Method Summary collapse

Class Method Details

.full_range(text) ⇒ Object



19
20
21
22
23
24
25
26
27
# File 'lib/kapusta/lsp/formatting.rb', line 19

def full_range(text)
  lines = text.split("\n", -1)
  end_line = [lines.length - 1, 0].max
  end_character = lines.last ? lines.last.length : 0
  {
    start: { line: 0, character: 0 },
    end: { line: end_line, character: end_character }
  }
end

.text_edits(text, path) ⇒ Object



10
11
12
13
14
15
16
17
# File 'lib/kapusta/lsp/formatting.rb', line 10

def text_edits(text, path)
  formatted = Kapusta::Formatter.format(text, path:)
  return [] if formatted == text

  [{ range: full_range(text), newText: formatted }]
rescue Kapusta::Error
  []
end