Class: Rouge::Lexers::Javascript

Inherits:
RegexLexer show all
Defined in:
lib/rouge/lexers/javascript.rb

Constant Summary

Constants inherited from RegexLexer

RegexLexer::MAX_NULL_SCANS

Class Method Summary collapse

Methods inherited from RegexLexer

#delegate, get_state, #get_state, #group, #in_state?, #pop!, #push, #reset!, #reset_stack, #run_callback, #run_rule, #stack, start, start_procs, #state, state, #state?, states, #step, #stream_tokens, #token

Methods inherited from Rouge::Lexer

aliases, all, assert_utf8!, #debug, default_options, demo, demo_file, desc, filenames, find, find_fancy, guess, guess_by_filename, guess_by_mimetype, guess_by_source, #initialize, lex, #lex, mimetypes, #option, #options, register, #reset!, #stream_tokens, #tag, tag

Constructor Details

This class inherits a constructor from Rouge::Lexer

Class Method Details

.analyze_text(text) ⇒ Object


12
13
14
15
16
# File 'lib/rouge/lexers/javascript.rb', line 12

def self.analyze_text(text)
  return 1 if text.shebang?('node')
  return 1 if text.shebang?('jsc')
  # TODO: rhino, spidermonkey, etc
end

.builtinsObject


74
75
76
77
78
79
80
81
82
# File 'lib/rouge/lexers/javascript.rb', line 74

def self.builtins
  @builtins ||= %w(
    Array Boolean Date Error Function Math netscape
    Number Object Packages RegExp String sun decodeURI
    decodeURIComponent encodeURI encodeURIComponent
    Error eval isFinite isNaN parseFloat parseInt document this
    window
  )
end

.constantsObject


70
71
72
# File 'lib/rouge/lexers/javascript.rb', line 70

def self.constants
  @constants ||= Set.new %w(true false null NaN Infinity undefined)
end

.declarationsObject


57
58
59
# File 'lib/rouge/lexers/javascript.rb', line 57

def self.declarations
  @declarations ||= Set.new %w(var let with function)
end

.keywordsObject


49
50
51
52
53
54
55
# File 'lib/rouge/lexers/javascript.rb', line 49

def self.keywords
  @keywords ||= Set.new %w(
    for in while do break return continue switch case default
    if else throw try catch finally new delete typeof instanceof
    void this
  )
end

.reservedObject


61
62
63
64
65
66
67
68
# File 'lib/rouge/lexers/javascript.rb', line 61

def self.reserved
  @reserved ||= Set.new %w(
    abstract boolean byte char class const debugger double enum
    export extends final float goto implements import int interface
    long native package private protected public short static
    super synchronized throws transient volatile
  )
end