Class: MontyAI::SyntaxHighlighter
- Inherits:
-
Object
- Object
- MontyAI::SyntaxHighlighter
- Defined in:
- lib/monty_ai/syntax_highlighter.rb
Instance Method Summary collapse
- #detect_language(filename) ⇒ Object
- #highlight(code, language = :ruby) ⇒ Object
-
#initialize ⇒ SyntaxHighlighter
constructor
A new instance of SyntaxHighlighter.
Constructor Details
#initialize ⇒ SyntaxHighlighter
Returns a new instance of SyntaxHighlighter.
8 9 10 |
# File 'lib/monty_ai/syntax_highlighter.rb', line 8 def initialize @pastel = Pastel.new end |
Instance Method Details
#detect_language(filename) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/monty_ai/syntax_highlighter.rb', line 18 def detect_language(filename) extension = File.extname(filename).downcase case extension when ".go" :go when ".rb" :ruby when ".js" :javascript when ".jsx" :react_javascript when ".py" :python when ".java" :java when ".php" :php when ".rs" :rust when ".ts" :typescript when ".tsx" :react_typescript else :text end end |
#highlight(code, language = :ruby) ⇒ Object
12 13 14 15 16 |
# File 'lib/monty_ai/syntax_highlighter.rb', line 12 def highlight(code, language = :ruby) formatter = Rouge::Formatters::Terminal256.new(Rouge::Themes::Monokai.new) lexer = Rouge::Lexer.find(language.to_s) || Rouge::Lexers::PlainText.new formatter.format(lexer.lex(code)) end |