Class: Rouge::Lexers::Javascript
- Inherits:
-
RegexLexer
- Object
- Rouge::Lexer
- RegexLexer
- Rouge::Lexers::Javascript
- Defined in:
- lib/rouge/lexers/javascript.rb
Overview
IMPORTANT NOTICE:
Please do not copy this lexer and open a pull request for a new language. It will not get merged, you will be unhappy, and kittens will cry.
Direct Known Subclasses
JSX, Qml, Typescript
Constant Summary
Constants inherited from RegexLexer
Constants included from Token::Tokens
Token::Tokens::Num, Token::Tokens::Str
Class Method Summary collapse
- .analyze_text(text) ⇒ Object
- .builtins ⇒ Object
- .constants ⇒ Object
- .declarations ⇒ Object
- .id_regex ⇒ Object
- .keywords ⇒ Object
- .reserved ⇒ Object
Methods inherited from RegexLexer
append, #delegate, get_state, #get_state, #goto, #group, #groups, #in_state?, #pop!, prepend, #push, #recurse, replace_state, #reset!, #reset_stack, #stack, start, start_procs, #state, state, #state?, state_definitions, 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, guesses, #initialize, lex, #lex, mimetypes, #option, #options, #reset!, #stream_tokens, tag, #tag, title
Methods included from Token::Tokens
Constructor Details
This class inherits a constructor from Rouge::Lexer
Class Method Details
.analyze_text(text) ⇒ Object
21 22 23 24 25 |
# File 'lib/rouge/lexers/javascript.rb', line 21 def self.analyze_text(text) return 1 if text.shebang?('node') return 1 if text.shebang?('jsc') # TODO: rhino, spidermonkey, etc end |
.builtins ⇒ Object
123 124 125 126 127 128 129 130 131 |
# File 'lib/rouge/lexers/javascript.rb', line 123 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 |
.constants ⇒ Object
119 120 121 |
# File 'lib/rouge/lexers/javascript.rb', line 119 def self.constants @constants ||= Set.new %w(true false null NaN Infinity undefined) end |
.declarations ⇒ Object
106 107 108 |
# File 'lib/rouge/lexers/javascript.rb', line 106 def self.declarations @declarations ||= Set.new %w(var let with function) end |
.id_regex ⇒ Object
133 134 135 |
# File 'lib/rouge/lexers/javascript.rb', line 133 def self.id_regex /[$a-z_][a-z0-9_]*/io end |
.keywords ⇒ Object
98 99 100 101 102 103 104 |
# File 'lib/rouge/lexers/javascript.rb', line 98 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 yield ) end |
.reserved ⇒ Object
110 111 112 113 114 115 116 117 |
# File 'lib/rouge/lexers/javascript.rb', line 110 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 |