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)
# File lib/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 ()
# File lib/syntax_suggest/display_code_with_line_numbers.rb, line 32
def call
  @lines.map do |line|
    format_line(line)
  end.join
end