Class: Rouge::Lexers::Clojure

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

Constant Summary

Constants inherited from RegexLexer

RegexLexer::MAX_NULL_SCANS

Constants included from Token::Tokens

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

Instance Attribute Summary

Attributes inherited from Rouge::Lexer

#options

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from RegexLexer

append, #delegate, #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, #as_bool, #as_lexer, #as_list, #as_string, #as_token, #bool_option, #continue_lex, continue_lex, debug_enabled?, demo, demo_file, desc, detect?, detectable?, disable_debug!, enable_debug!, filenames, find, find_fancy, guess, guess_by_filename, guess_by_mimetype, guess_by_source, guesses, #hash_option, #initialize, #lex, lex, #lexer_option, #list_option, mimetypes, option, option_docs, #reset!, #stream_tokens, #string_option, tag, #tag, title, #token_option

Methods included from Token::Tokens

token

Constructor Details

This class inherits a constructor from Rouge::Lexer

Class Method Details

.builtinsObject


24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/rouge/lexers/clojure.rb', line 24

def self.builtins
  @builtins ||= Set.new %w(
    . ..  * + - -> / < <= = == > >= accessor agent agent-errors
    aget alength all-ns alter and append-child apply array-map
    aset aset-boolean aset-byte aset-char aset-double aset-float
    aset-int aset-long aset-short assert assoc await await-for bean
    binding bit-and bit-not bit-or bit-shift-left bit-shift-right
    bit-xor boolean branch?  butlast byte cast char children
    class clear-agent-errors comment commute comp comparator
    complement concat conj cons constantly construct-proxy
    contains? count create-ns create-struct cycle dec  deref
    difference disj dissoc distinct doall doc dorun doseq dosync
    dotimes doto double down drop drop-while edit end? ensure eval
    every? false? ffirst file-seq filter find find-doc find-ns
    find-var first float flush fnseq frest gensym get-proxy-class
    get hash-map hash-set identical? identity if-let import in-ns
    inc index insert-child insert-left insert-right inspect-table
    inspect-tree instance? int interleave intersection into
    into-array iterate join key keys keyword keyword? last lazy-cat
    lazy-cons left lefts line-seq list* list load load-file locking
    long loop macroexpand macroexpand-1 make-array make-node map
    map-invert map? mapcat max max-key memfn merge merge-with meta
    min min-key name namespace neg? new newline next nil? node not
    not-any? not-every? not= ns-imports ns-interns ns-map ns-name
    ns-publics ns-refers ns-resolve ns-unmap nth nthrest or parse
    partial path peek pop pos? pr pr-str print print-str println
    println-str prn prn-str project proxy proxy-mappings quot
    rand rand-int range re-find re-groups re-matcher re-matches
    re-pattern re-seq read read-line reduce ref ref-set refer rem
    remove remove-method remove-ns rename rename-keys repeat replace
    replicate resolve rest resultset-seq reverse rfirst right
    rights root rrest rseq second select select-keys send send-off
    seq seq-zip seq? set short slurp some sort sort-by sorted-map
    sorted-map-by sorted-set special-symbol? split-at split-with
    str string?  struct struct-map subs subvec symbol symbol?
    sync take take-nth take-while test time to-array to-array-2d
    tree-seq true? union up update-proxy val vals var-get var-set
    var? vector vector-zip vector? when when-first when-let
    when-not with-local-vars with-meta with-open with-out-str
    xml-seq xml-zip zero? zipmap zipper'
  )
end

.keywordsObject


17
18
19
20
21
22
# File 'lib/rouge/lexers/clojure.rb', line 17

def self.keywords
  @keywords ||= Set.new %w(
    fn def defn defmacro defmethod defmulti defn- defstruct if
    cond let for
  )
end

Instance Method Details

#name_token(name) ⇒ Object


70
71
72
73
74
# File 'lib/rouge/lexers/clojure.rb', line 70

def name_token(name)
  return Keyword if self.class.keywords.include?(name)
  return Name::Builtin if self.class.builtins.include?(name)
  nil
end