class Leg::DiffTransformers::SyntaxHighlight

Constants

SYNTAX_HIGHLIGHTER

Public Instance Methods

transform(diff) click to toggle source
# File lib/leg/diff_transformers/syntax_highlight.rb, line 21
def transform(diff)
  new_diff = diff.clone
  code = new_diff.lines.map(&:source).join("\n") + "\n"
  lexer = Rouge::Lexer.guess(filename: new_diff.filename, source: code)
  SYNTAX_HIGHLIGHTER.format(lexer.lex(code)).lines.each.with_index do |line_hl, idx|
    new_diff.lines[idx].source = line_hl
  end
  new_diff
end