Class: Leg::DiffTransformers::SyntaxHighlight
- Inherits:
-
BaseTransformer
- Object
- BaseTransformer
- Leg::DiffTransformers::SyntaxHighlight
- Defined in:
- lib/leg/diff_transformers/syntax_highlight.rb
Defined Under Namespace
Classes: HTMLLineByLine
Constant Summary collapse
- SYNTAX_HIGHLIGHTER =
HTMLLineByLine.new(Rouge::Formatters::HTML.new)
Instance Method Summary collapse
Methods inherited from BaseTransformer
Constructor Details
This class inherits a constructor from Leg::DiffTransformers::BaseTransformer
Instance Method Details
#transform(diff) ⇒ Object
21 22 23 24 25 26 27 28 29 |
# 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 |