Module: Yatte::Syntax

Defined in:
lib/yatte/syntax.rb,
lib/yatte/syntax/lexer.rb,
lib/yatte/syntax/theme.rb,
lib/yatte/syntax/lexers/ruby.rb,
lib/yatte/syntax/lexers/plain.rb,
lib/yatte/syntax/themes/default.rb,
lib/yatte/syntax/lexers/markdown.rb

Defined Under Namespace

Modules: Lexers, Themes Classes: Lexer, Theme

Constant Summary collapse

COLORS =
Theme.find(:default).styles.dup.freeze
RESET =
Theme::RESET

Class Method Summary collapse

Class Method Details

.colorize(tokens) ⇒ Object



28
29
30
# File 'lib/yatte/syntax.rb', line 28

def self.colorize(tokens)
  Theme.default.colorize(tokens)
end

.detect(filename) ⇒ Object



15
16
17
# File 'lib/yatte/syntax.rb', line 15

def self.detect(filename)
  Lexer.detect(filename)
end

.lexer_cacheObject



32
33
34
# File 'lib/yatte/syntax.rb', line 32

def self.lexer_cache
  @lexer_cache ||= Hash.new { |h, k| h[k] = Lexer.find(k).new }
end

.tokenize(line, language) ⇒ Object



19
20
21
22
23
24
25
26
# File 'lib/yatte/syntax.rb', line 19

def self.tokenize(line, language)
  return [[line, :plain]] if language == :plain || line.empty?

  klass = Lexer.find(language)
  return [[line, :plain]] unless klass

  lexer_cache[language].tokenize(line)
end