Class: Rouge::Lexers::Javascript

Inherits:
RegexLexer show all
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

Qml, Typescript

Constant Summary

Constants inherited from RegexLexer

RegexLexer::MAX_NULL_SCANS

Constants included from Token::Tokens

Token::Tokens::Num, Token::Tokens::Str

Class Method Summary collapse

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

token

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

.builtinsObject



117
118
119
120
121
122
123
124
125
# File 'lib/rouge/lexers/javascript.rb', line 117

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



113
114
115
# File 'lib/rouge/lexers/javascript.rb', line 113

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

.declarationsObject



100
101
102
# File 'lib/rouge/lexers/javascript.rb', line 100

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

.keywordsObject



92
93
94
95
96
97
98
# File 'lib/rouge/lexers/javascript.rb', line 92

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

.reservedObject



104
105
106
107
108
109
110
111
# File 'lib/rouge/lexers/javascript.rb', line 104

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