rouge 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +2 -0
- data/bin/rougify +1 -1
- data/lib/rouge/demos/{text → plaintext} +0 -0
- data/lib/rouge/formatters/html.rb +13 -8
- data/lib/rouge/formatters/terminal256.rb +15 -11
- data/lib/rouge/lexer.rb +3 -1
- data/lib/rouge/lexers/c.rb +65 -55
- data/lib/rouge/lexers/clojure.rb +19 -19
- data/lib/rouge/lexers/coffeescript.rb +42 -42
- data/lib/rouge/lexers/common_lisp.rb +49 -48
- data/lib/rouge/lexers/conf.rb +6 -6
- data/lib/rouge/lexers/cpp.rb +48 -48
- data/lib/rouge/lexers/csharp.rb +25 -25
- data/lib/rouge/lexers/css.rb +32 -33
- data/lib/rouge/lexers/diff.rb +8 -8
- data/lib/rouge/lexers/elixir.rb +30 -30
- data/lib/rouge/lexers/erb.rb +5 -5
- data/lib/rouge/lexers/erlang.rb +38 -38
- data/lib/rouge/lexers/factor.rb +56 -56
- data/lib/rouge/lexers/gherkin.rb +27 -27
- data/lib/rouge/lexers/go.rb +21 -21
- data/lib/rouge/lexers/groovy.rb +32 -32
- data/lib/rouge/lexers/haml.rb +35 -35
- data/lib/rouge/lexers/handlebars.rb +27 -27
- data/lib/rouge/lexers/haskell.rb +78 -79
- data/lib/rouge/lexers/html.rb +28 -28
- data/lib/rouge/lexers/http.rb +13 -13
- data/lib/rouge/lexers/ini.rb +13 -13
- data/lib/rouge/lexers/io.rb +19 -19
- data/lib/rouge/lexers/java.rb +29 -29
- data/lib/rouge/lexers/javascript.rb +49 -52
- data/lib/rouge/lexers/literate_haskell.rb +5 -5
- data/lib/rouge/lexers/llvm.rb +14 -14
- data/lib/rouge/lexers/lua.rb +33 -33
- data/lib/rouge/lexers/make.rb +26 -26
- data/lib/rouge/lexers/markdown.rb +49 -49
- data/lib/rouge/lexers/nginx.rb +19 -19
- data/lib/rouge/lexers/perl.rb +53 -54
- data/lib/rouge/lexers/php.rb +42 -43
- data/lib/rouge/lexers/{text.rb → plain_text.rb} +3 -2
- data/lib/rouge/lexers/prolog.rb +19 -19
- data/lib/rouge/lexers/puppet.rb +40 -40
- data/lib/rouge/lexers/python.rb +63 -63
- data/lib/rouge/lexers/r.rb +15 -15
- data/lib/rouge/lexers/racket.rb +29 -29
- data/lib/rouge/lexers/ruby.rb +94 -97
- data/lib/rouge/lexers/rust.rb +37 -37
- data/lib/rouge/lexers/sass.rb +15 -15
- data/lib/rouge/lexers/sass/common.rb +144 -136
- data/lib/rouge/lexers/scheme.rb +25 -25
- data/lib/rouge/lexers/scss.rb +7 -7
- data/lib/rouge/lexers/sed.rb +39 -39
- data/lib/rouge/lexers/shell.rb +45 -45
- data/lib/rouge/lexers/smalltalk.rb +36 -36
- data/lib/rouge/lexers/sql.rb +27 -27
- data/lib/rouge/lexers/tcl.rb +34 -34
- data/lib/rouge/lexers/tex.rb +24 -24
- data/lib/rouge/lexers/toml.rb +18 -18
- data/lib/rouge/lexers/viml.rb +19 -19
- data/lib/rouge/lexers/xml.rb +16 -16
- data/lib/rouge/lexers/yaml.rb +78 -81
- data/lib/rouge/plugins/redcarpet.rb +1 -1
- data/lib/rouge/regex_lexer.rb +31 -14
- data/lib/rouge/template_lexer.rb +1 -1
- data/lib/rouge/theme.rb +12 -10
- data/lib/rouge/themes/thankful_eyes.rb +43 -43
- data/lib/rouge/token.rb +145 -148
- data/lib/rouge/version.rb +1 -1
- metadata +4 -4
data/lib/rouge/lexers/sql.rb
CHANGED
@@ -85,52 +85,52 @@ module Rouge
|
|
85
85
|
end
|
86
86
|
|
87
87
|
state :root do
|
88
|
-
rule /\s+/m,
|
89
|
-
rule /--.*?\n/,
|
90
|
-
rule %r(/\*),
|
91
|
-
rule /\d+/,
|
92
|
-
rule /'/,
|
93
|
-
rule /"/,
|
94
|
-
rule /`/,
|
88
|
+
rule /\s+/m, Text
|
89
|
+
rule /--.*?\n/, Comment::Single
|
90
|
+
rule %r(/\*), Comment::Multiline, :multiline_comments
|
91
|
+
rule /\d+/, Num::Integer
|
92
|
+
rule /'/, Str::Single, :single_string
|
93
|
+
rule /"/, Name::Variable, :double_string
|
94
|
+
rule /`/, Name::Variable, :backtick
|
95
95
|
|
96
96
|
rule /\w[\w\d]*/ do |m|
|
97
97
|
if self.class.keywords.include? m[0].upcase
|
98
|
-
token
|
98
|
+
token Keyword
|
99
99
|
else
|
100
|
-
token
|
100
|
+
token Name
|
101
101
|
end
|
102
102
|
end
|
103
103
|
|
104
|
-
rule %r([+*/<>=~!@#%^&|?^-]),
|
105
|
-
rule /[;:()\[\],.]/,
|
104
|
+
rule %r([+*/<>=~!@#%^&|?^-]), Operator
|
105
|
+
rule /[;:()\[\],.]/, Punctuation
|
106
106
|
end
|
107
107
|
|
108
108
|
state :multiline_comments do
|
109
|
-
rule %r(/[*]),
|
110
|
-
rule %r([*]/),
|
111
|
-
rule %r([^/*]+),
|
112
|
-
rule %r([/*]),
|
109
|
+
rule %r(/[*]), Comment::Multiline, :multiline_comments
|
110
|
+
rule %r([*]/), Comment::Multiline, :pop!
|
111
|
+
rule %r([^/*]+), Comment::Multiline
|
112
|
+
rule %r([/*]), Comment::Multiline
|
113
113
|
end
|
114
114
|
|
115
115
|
state :backtick do
|
116
|
-
rule /\\./,
|
117
|
-
rule /``/,
|
118
|
-
rule /`/,
|
119
|
-
rule /[^\\`]+/,
|
116
|
+
rule /\\./, Str::Escape
|
117
|
+
rule /``/, Str::Escape
|
118
|
+
rule /`/, Name::Variable, :pop!
|
119
|
+
rule /[^\\`]+/, Name::Variable
|
120
120
|
end
|
121
121
|
|
122
122
|
state :single_string do
|
123
|
-
rule /\\./,
|
124
|
-
rule /''/,
|
125
|
-
rule /'/,
|
126
|
-
rule /[^\\']+/,
|
123
|
+
rule /\\./, Str::Escape
|
124
|
+
rule /''/, Str::Escape
|
125
|
+
rule /'/, Str::Single, :pop!
|
126
|
+
rule /[^\\']+/, Str::Single
|
127
127
|
end
|
128
128
|
|
129
129
|
state :double_string do
|
130
|
-
rule /\\./,
|
131
|
-
rule /""/,
|
132
|
-
rule /"/,
|
133
|
-
rule /[^\\"]+/,
|
130
|
+
rule /\\./, Str::Escape
|
131
|
+
rule /""/, Str::Escape
|
132
|
+
rule /"/, Name::Variable, :pop!
|
133
|
+
rule /[^\\"]+/, Name::Variable
|
134
134
|
end
|
135
135
|
end
|
136
136
|
end
|
data/lib/rouge/lexers/tcl.rb
CHANGED
@@ -41,21 +41,21 @@ module Rouge
|
|
41
41
|
NOT_CHARS = lambda { |list| Regexp.new %/[^#{list.join}]/ }
|
42
42
|
|
43
43
|
state :word do
|
44
|
-
rule /\{\*\}/,
|
44
|
+
rule /\{\*\}/, Keyword
|
45
45
|
|
46
46
|
mixin :brace_abort
|
47
47
|
mixin :interp
|
48
|
-
rule /\{/,
|
49
|
-
rule /\(/,
|
50
|
-
rule /"/,
|
51
|
-
rule /#{NOT_CHARS[END_WORD]}+?(?=#{CHARS[OPEN+['\\\\']]})/,
|
48
|
+
rule /\{/, Punctuation, :brace
|
49
|
+
rule /\(/, Punctuation, :paren
|
50
|
+
rule /"/, Str::Double, :string
|
51
|
+
rule /#{NOT_CHARS[END_WORD]}+?(?=#{CHARS[OPEN+['\\\\']]})/, Text
|
52
52
|
end
|
53
53
|
|
54
54
|
def self.gen_command_state(name='')
|
55
55
|
state(:"command#{name}") do
|
56
56
|
mixin :word
|
57
57
|
|
58
|
-
rule /##{NOT_CHARS[END_LINE]}+/,
|
58
|
+
rule /##{NOT_CHARS[END_LINE]}+/, Comment::Single
|
59
59
|
|
60
60
|
rule /(?=#{CHARS[END_WORD]})/ do
|
61
61
|
push :"params#{name}"
|
@@ -63,11 +63,11 @@ module Rouge
|
|
63
63
|
|
64
64
|
rule /#{NOT_CHARS[END_WORD]}+/ do |m|
|
65
65
|
if KEYWORDS.include? m[0]
|
66
|
-
token
|
66
|
+
token Keyword
|
67
67
|
elsif BUILTINS.include? m[0]
|
68
|
-
token
|
68
|
+
token Name::Builtin
|
69
69
|
else
|
70
|
-
token
|
70
|
+
token Text
|
71
71
|
end
|
72
72
|
end
|
73
73
|
|
@@ -80,24 +80,24 @@ module Rouge
|
|
80
80
|
|
81
81
|
state :"params_in_#{name}" do
|
82
82
|
rule close do
|
83
|
-
token
|
84
|
-
pop
|
83
|
+
token Punctuation
|
84
|
+
pop! 2
|
85
85
|
end
|
86
86
|
|
87
87
|
# mismatched delimiters. Braced strings with mismatched
|
88
88
|
# closing delimiters should be okay, since this is standard
|
89
89
|
# practice, like {]]]]}
|
90
90
|
if opts[:strict]
|
91
|
-
rule CHARS[CLOSE - [close]],
|
91
|
+
rule CHARS[CLOSE - [close]], Error
|
92
92
|
else
|
93
|
-
rule CHARS[CLOSE - [close]],
|
93
|
+
rule CHARS[CLOSE - [close]], Text
|
94
94
|
end
|
95
95
|
|
96
96
|
mixin :params
|
97
97
|
end
|
98
98
|
|
99
99
|
state name do
|
100
|
-
rule close,
|
100
|
+
rule close, Punctuation, :pop!
|
101
101
|
mixin :"command_in_#{name}"
|
102
102
|
end
|
103
103
|
end
|
@@ -116,20 +116,20 @@ module Rouge
|
|
116
116
|
if in_state? :brace
|
117
117
|
pop! until state? :brace
|
118
118
|
pop!
|
119
|
-
token
|
119
|
+
token Punctuation
|
120
120
|
else
|
121
|
-
token
|
121
|
+
token Error
|
122
122
|
end
|
123
123
|
end
|
124
124
|
end
|
125
125
|
|
126
126
|
state :params do
|
127
|
-
rule /;/,
|
128
|
-
rule /\n/,
|
129
|
-
rule /else|elseif|then/,
|
127
|
+
rule /;/, Punctuation, :pop!
|
128
|
+
rule /\n/, Text, :pop!
|
129
|
+
rule /else|elseif|then/, Keyword
|
130
130
|
mixin :word
|
131
131
|
mixin :whitespace
|
132
|
-
rule /#{NOT_CHARS[END_WORD]}+/,
|
132
|
+
rule /#{NOT_CHARS[END_WORD]}+/, Text
|
133
133
|
end
|
134
134
|
|
135
135
|
gen_delimiter_states :brace, /\}/, :strict => false
|
@@ -143,26 +143,26 @@ module Rouge
|
|
143
143
|
|
144
144
|
state :whitespace do
|
145
145
|
# not a multiline regex because we want to capture \n sometimes
|
146
|
-
rule /\s+/,
|
146
|
+
rule /\s+/, Text
|
147
147
|
end
|
148
148
|
|
149
149
|
state :interp do
|
150
|
-
rule /\[/,
|
151
|
-
rule /\$[a-z0-9.:-]+/,
|
152
|
-
rule /\$\{.*?\}/m,
|
153
|
-
rule /\$/,
|
150
|
+
rule /\[/, Punctuation, :bracket
|
151
|
+
rule /\$[a-z0-9.:-]+/, Name::Variable
|
152
|
+
rule /\$\{.*?\}/m, Name::Variable
|
153
|
+
rule /\$/, Text
|
154
154
|
|
155
155
|
# escape sequences
|
156
|
-
rule /\\[0-7]{3}/,
|
157
|
-
rule /\\x[0-9a-f]{2}/i,
|
158
|
-
rule /\\u[0-9a-f]{4}/i,
|
159
|
-
rule /\\./m,
|
156
|
+
rule /\\[0-7]{3}/, Str::Escape
|
157
|
+
rule /\\x[0-9a-f]{2}/i, Str::Escape
|
158
|
+
rule /\\u[0-9a-f]{4}/i, Str::Escape
|
159
|
+
rule /\\./m, Str::Escape
|
160
160
|
end
|
161
161
|
|
162
162
|
state :string do
|
163
|
-
rule /"/,
|
163
|
+
rule /"/, Str::Double, :pop!
|
164
164
|
mixin :interp
|
165
|
-
rule /[^\\\[\$"{}]+/m,
|
165
|
+
rule /[^\\\[\$"{}]+/m, Str::Double
|
166
166
|
|
167
167
|
# strings have to keep count of their internal braces, to support
|
168
168
|
# for example { "{ }" }.
|
@@ -170,17 +170,17 @@ module Rouge
|
|
170
170
|
@brace_count ||= 0
|
171
171
|
@brace_count += 1
|
172
172
|
|
173
|
-
token
|
173
|
+
token Str::Double
|
174
174
|
end
|
175
175
|
|
176
176
|
rule /}/ do
|
177
177
|
if in_state? :brace and @brace_count.to_i == 0
|
178
178
|
pop! until state? :brace
|
179
179
|
pop!
|
180
|
-
token
|
180
|
+
token Punctuation
|
181
181
|
else
|
182
182
|
@brace_count -= 1
|
183
|
-
token
|
183
|
+
token Str::Double
|
184
184
|
end
|
185
185
|
end
|
186
186
|
end
|
data/lib/rouge/lexers/tex.rb
CHANGED
@@ -18,53 +18,53 @@ module Rouge
|
|
18
18
|
command = /\\([a-z]+|\s+|.)/i
|
19
19
|
|
20
20
|
state :general do
|
21
|
-
rule /%.*$/,
|
22
|
-
rule /[{}&_^]/,
|
21
|
+
rule /%.*$/, Comment
|
22
|
+
rule /[{}&_^]/, Punctuation
|
23
23
|
end
|
24
24
|
|
25
25
|
state :root do
|
26
|
-
rule /\\\[/,
|
27
|
-
rule /\\\(/,
|
28
|
-
rule /\$\$/,
|
29
|
-
rule /\$/,
|
30
|
-
rule /\\(begin|end)\{.*?\}/,
|
26
|
+
rule /\\\[/, Punctuation, :displaymath
|
27
|
+
rule /\\\(/, Punctuation, :inlinemath
|
28
|
+
rule /\$\$/, Punctuation, :displaymath
|
29
|
+
rule /\$/, Punctuation, :inlinemath
|
30
|
+
rule /\\(begin|end)\{.*?\}/, Name::Tag
|
31
31
|
|
32
32
|
rule /(\\verb)\b(\S)(.*?)(\2)/ do |m|
|
33
|
-
group
|
34
|
-
group
|
35
|
-
group
|
36
|
-
group
|
33
|
+
group Name::Builtin
|
34
|
+
group Keyword::Pseudo
|
35
|
+
group Str::Other
|
36
|
+
group Keyword::Pseudo
|
37
37
|
end
|
38
38
|
|
39
|
-
rule command,
|
39
|
+
rule command, Keyword, :command
|
40
40
|
mixin :general
|
41
|
-
rule /[^\\$%&_^{}]+/,
|
41
|
+
rule /[^\\$%&_^{}]+/, Text
|
42
42
|
end
|
43
43
|
|
44
44
|
state :math do
|
45
|
-
rule command,
|
45
|
+
rule command, Name::Variable
|
46
46
|
mixin :general
|
47
|
-
rule /[0-9]+/,
|
48
|
-
rule /[-=!+*\/()\[\]]/,
|
49
|
-
rule /[^=!+*\/()\[\]\\$%&_^{}0-9-]+/,
|
47
|
+
rule /[0-9]+/, Num
|
48
|
+
rule /[-=!+*\/()\[\]]/, Operator
|
49
|
+
rule /[^=!+*\/()\[\]\\$%&_^{}0-9-]+/, Name::Builtin
|
50
50
|
end
|
51
51
|
|
52
52
|
state :inlinemath do
|
53
|
-
rule /\\\)/,
|
54
|
-
rule /\$/,
|
53
|
+
rule /\\\)/, Punctuation, :pop!
|
54
|
+
rule /\$/, Punctuation, :pop!
|
55
55
|
mixin :math
|
56
56
|
end
|
57
57
|
|
58
58
|
state :displaymath do
|
59
|
-
rule /\\\]/,
|
60
|
-
rule /\$\$/,
|
61
|
-
rule /\$/,
|
59
|
+
rule /\\\]/, Punctuation, :pop!
|
60
|
+
rule /\$\$/, Punctuation, :pop!
|
61
|
+
rule /\$/, Name::Builtin
|
62
62
|
mixin :math
|
63
63
|
end
|
64
64
|
|
65
65
|
state :command do
|
66
|
-
rule /\[.*?\]/,
|
67
|
-
rule /\*/,
|
66
|
+
rule /\[.*?\]/, Name::Attribute
|
67
|
+
rule /\*/, Keyword
|
68
68
|
rule(//) { pop! }
|
69
69
|
end
|
70
70
|
end
|
data/lib/rouge/lexers/toml.rb
CHANGED
@@ -14,55 +14,55 @@ module Rouge
|
|
14
14
|
identifier = /[\w.\S]+/
|
15
15
|
|
16
16
|
state :basic do
|
17
|
-
rule /\s+/,
|
18
|
-
rule /#.*?$/,
|
19
|
-
rule /(true|false)/,
|
20
|
-
rule /(?<!=)\s*\[[\w\d\S]+\]/,
|
17
|
+
rule /\s+/, Text
|
18
|
+
rule /#.*?$/, Comment
|
19
|
+
rule /(true|false)/, Keyword::Constant
|
20
|
+
rule /(?<!=)\s*\[[\w\d\S]+\]/, Name::Namespace
|
21
21
|
|
22
|
-
rule /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z/,
|
22
|
+
rule /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z/, Literal::Date
|
23
23
|
|
24
|
-
rule /(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?/,
|
25
|
-
rule /\d+[eE][+-]?[0-9]+j?/,
|
26
|
-
rule /\-?\d+/,
|
24
|
+
rule /(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?/, Num::Float
|
25
|
+
rule /\d+[eE][+-]?[0-9]+j?/, Num::Float
|
26
|
+
rule /\-?\d+/, Num::Integer
|
27
27
|
end
|
28
28
|
|
29
29
|
state :root do
|
30
30
|
mixin :basic
|
31
31
|
|
32
32
|
rule /(#{identifier})(\s*)(=)/ do
|
33
|
-
group
|
34
|
-
group
|
33
|
+
group Name::Property; group Text
|
34
|
+
group Punctuation
|
35
35
|
push :value
|
36
36
|
end
|
37
37
|
|
38
38
|
end
|
39
39
|
|
40
40
|
state :value do
|
41
|
-
rule /\n/,
|
41
|
+
rule /\n/, Text, :pop!
|
42
42
|
mixin :content
|
43
43
|
end
|
44
44
|
|
45
45
|
state :content do
|
46
46
|
mixin :basic
|
47
|
-
rule /"/,
|
47
|
+
rule /"/, Str, :dq
|
48
48
|
mixin :esc_str
|
49
|
-
rule /\,/,
|
50
|
-
rule /\[/,
|
49
|
+
rule /\,/, Punctuation
|
50
|
+
rule /\[/, Punctuation, :array
|
51
51
|
end
|
52
52
|
|
53
53
|
state :dq do
|
54
|
-
rule /"/,
|
54
|
+
rule /"/, Str, :pop!
|
55
55
|
mixin :esc_str
|
56
|
-
rule /[^\\"]+/,
|
56
|
+
rule /[^\\"]+/, Str
|
57
57
|
end
|
58
58
|
|
59
59
|
state :esc_str do
|
60
|
-
rule /\\[0t\tn\n "\\ r]/,
|
60
|
+
rule /\\[0t\tn\n "\\ r]/, Str::Escape
|
61
61
|
end
|
62
62
|
|
63
63
|
state :array do
|
64
64
|
mixin :content
|
65
|
-
rule /\]/,
|
65
|
+
rule /\]/, Punctuation, :pop!
|
66
66
|
end
|
67
67
|
end
|
68
68
|
end
|
data/lib/rouge/lexers/viml.rb
CHANGED
@@ -16,48 +16,48 @@ module Rouge
|
|
16
16
|
|
17
17
|
state :root do
|
18
18
|
rule /^(\s*)(".*?)$/ do
|
19
|
-
group
|
19
|
+
group Text; group Comment
|
20
20
|
end
|
21
21
|
|
22
|
-
rule /^\s*\\/,
|
22
|
+
rule /^\s*\\/, Str::Escape
|
23
23
|
|
24
|
-
rule /[ \t]+/,
|
24
|
+
rule /[ \t]+/, Text
|
25
25
|
|
26
26
|
# TODO: regexes can have other delimiters
|
27
|
-
rule %r(/(\\\\|\\/|[^\n/])*/),
|
28
|
-
rule %r("(\\\\|\\"|[^\n"])*"),
|
29
|
-
rule %r('(\\\\|\\'|[^\n'])*'),
|
27
|
+
rule %r(/(\\\\|\\/|[^\n/])*/), Str::Regex
|
28
|
+
rule %r("(\\\\|\\"|[^\n"])*"), Str::Double
|
29
|
+
rule %r('(\\\\|\\'|[^\n'])*'), Str::Single
|
30
30
|
|
31
31
|
# if it's not a string, it's a comment.
|
32
|
-
rule /(?<=\s)"[^-:.%#=*].*?$/,
|
32
|
+
rule /(?<=\s)"[^-:.%#=*].*?$/, Comment
|
33
33
|
|
34
|
-
rule /-?\d+/,
|
35
|
-
rule /#[0-9a-f]{6}/i,
|
36
|
-
rule /^:/,
|
37
|
-
rule /[():<>+=!\[\]{}\|,~.-]/,
|
34
|
+
rule /-?\d+/, Num
|
35
|
+
rule /#[0-9a-f]{6}/i, Num::Hex
|
36
|
+
rule /^:/, Punctuation
|
37
|
+
rule /[():<>+=!\[\]{}\|,~.-]/, Punctuation
|
38
38
|
rule /\b(let|if|else|endif|elseif|fun|function|endfunction)\b/,
|
39
|
-
|
39
|
+
Keyword
|
40
40
|
|
41
|
-
rule /\b(NONE|bold|italic|underline|dark|light)\b/,
|
41
|
+
rule /\b(NONE|bold|italic|underline|dark|light)\b/, Name::Builtin
|
42
42
|
|
43
|
-
rule /[absg]:\w+\b/,
|
43
|
+
rule /[absg]:\w+\b/, Name::Variable
|
44
44
|
rule /\b\w+\b/ do |m|
|
45
45
|
name = m[0]
|
46
46
|
keywords = self.class.keywords
|
47
47
|
|
48
48
|
if mapping_contains?(keywords[:command], name)
|
49
|
-
token
|
49
|
+
token Keyword
|
50
50
|
elsif mapping_contains?(keywords[:option], name)
|
51
|
-
token
|
51
|
+
token Name::Builtin
|
52
52
|
elsif mapping_contains?(keywords[:auto], name)
|
53
|
-
token
|
53
|
+
token Name::Builtin
|
54
54
|
else
|
55
|
-
token
|
55
|
+
token Text
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
59
|
# no errors in VimL!
|
60
|
-
rule /./m,
|
60
|
+
rule /./m, Text
|
61
61
|
end
|
62
62
|
|
63
63
|
def mapping_contains?(mapping, word)
|