class SyntaxSuggest::DisplayCodeWithLineNumbers

Outputs code with highlighted lines

Whatever is passed to this class will be rendered even if it is “marked invisible” any filtering of output should be done before calling this class.

DisplayCodeWithLineNumbers.new(
  lines: lines,
  highlight_lines: [lines[2], lines[3]]
).call
# =>
    1
    2  def cat
  ❯ 3    Dir.chdir
  ❯ 4    end
    5  end
    6

Constants

TERMINAL_END
TERMINAL_HIGHLIGHT

Public Class Methods

new(lines:, highlight_lines: [], terminal: false) click to toggle source
# File syntax_suggest/display_code_with_line_numbers.rb, line 25
def initialize(lines:, highlight_lines: [], terminal: false)
  @lines = Array(lines).sort
  @terminal = terminal
  @highlight_line_hash = Array(highlight_lines).each_with_object({}) { |line, h| h[line] = true }
  @digit_count = @lines.last&.line_number.to_s.length
end

Public Instance Methods

call() click to toggle source
# File syntax_suggest/display_code_with_line_numbers.rb, line 32
def call
  @lines.map do |line|
    format_line(line)
  end.join
end