FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
vim-ruby/syntax/ruby.vim at master · sofaking/vim-ruby · GitHub
sofaking
/
vim-ruby
Public
forked from
vim-ruby/vim-ruby
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
vim-ruby
/
syntax
/
ruby.vim
Copy path
More file actions
More file actions
Latest commit
History
History
History
372 lines (322 loc) · 27.2 KB
Breadcrumbs
vim-ruby
/
syntax
/
ruby.vim
Copy path
File metadata and controls
372 lines (322 loc) · 27.2 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
"
Vim syntax file
"
Language:
Ruby
"
Maintainer:
Doug Kearns <dougkearns@gmail.com>
"
URL:
https://github.com/vim-ruby/vim-ruby
"
Anon CVS:
See above site
"
Release Coordinator:
Doug Kearns <dougkearns@gmail.com>
"
----------------------------------------------------------------------------
"
"
Previous Maintainer:
Mirko Nasato
"
Thanks to perl.vim authors, and to Reimer Behrends. :-) (MN)
"
----------------------------------------------------------------------------
if
exists
(
"
b:current_syntax
"
)
finish
endif
if
has
(
"
folding
"
)
&&
exists
(
"
ruby_fold
"
)
setlocal
foldmethod
=
syntax
endif
syn
cluster
rubyNotTop
contains
=
@rubyExtendedStringSpecial,@rubyRegexpSpecial,@rubyDeclaration,rubyConditional,rubyExceptional,rubyMethodExceptional,rubyTodo
if
exists
(
"
ruby_space_errors
"
)
if
!
exists
(
"
ruby_no_trail_space_error
"
)
syn
match
rubySpaceError
display
excludenl
"
\s\+
$
"
endif
if
!
exists
(
"
ruby_no_tab_space_error
"
)
syn
match
rubySpaceError
display
"
\+\t
"
me
=
e
-
1
endif
endif
"
Operators
if
exists
(
"
ruby_operators
"
)
syn
match
rubyOperator
"
[~!^&|*/%+-]
\|\%
(class
\s
*
\)\@
<!<<
\|
<=>
\|
<=
\|\%
(<
\|\<
class
\s\+\u\w
*
\s
*
\)\@
<!<[^<]
\@
=
\|
===
\|
==
\|
=
\~\|
>>
\|
>=
\|
=
\@
<!>
\|\*\*\|\.\.\.\|\.\.\|
::
"
syn
match
rubyOperator
"
->
\|
-=
\|
/=
\|\*\*
=
\|\*
=
\|
&&=
\|
&=
\|
&&
\|
||=
\|
|=
\|
||
\|
%=
\|
+=
\|
!
\~\|
!=
"
syn
region
rubyBracketOperator
matchgroup
=
rubyOperator
start
=
"
\%
(
\w
[?!]
\=\|
[]})]
\)\@
<=
\[\s
*
"
end
=
"
\s
*]
"
contains
=
ALLBUT,@rubyNotTop
endif
"
Expression Substitution and Backslash Notation
syn
match
rubyStringEscape
"
\\\\\|\\
[abefnrstv]
\|\\\o\{
1,3}
\|\\
x
\x\{
1,2}
"
contained
display
syn
match
rubyStringEscape
"
\%
(
\\
M-
\\
C-
\|\\
C-
\\
M-
\|\\
M-
\\
c
\|\\
c
\\
M-
\|\\
c
\|\\
C-
\|\\
M-
\)\%
(
\\\o\{
1,3}
\|\\
x
\x\{
1,2}
\|\\\=\S\)
"
contained
display
syn
match
rubyQuoteEscape
"
\\
[
\\
']
"
contained
display
syn
region
rubyInterpolation
matchgroup
=
rubyInterpolationDelimiter
start
=
"
#{
"
end
=
"
}
"
contained
contains
=
ALLBUT,@rubyNotTop
syn
match
rubyInterpolation
"
#
\%
(
\$\|
@@
\=\)\w\+
"
display
contained
contains
=
rubyInterpolationDelimiter,rubyInstanceVariable,rubyClassVariable,rubyGlobalVariable,rubyPredefinedVariable
syn
match
rubyInterpolationDelimiter
"
#
\z
e
\%
(
\$\|
@@
\=\)\w\+
"
display
contained
syn
match
rubyInterpolation
"
#
\$\%
(-
\w\|\W\)
"
display
contained
contains
=
rubyInterpolationDelimiter,rubyPredefinedVariable,rubyInvalidVariable
syn
match
rubyInterpolationDelimiter
"
#
\z
e
\$\%
(-
\w\|\W\)
"
display
contained
syn
region
rubyNoInterpolation
start
=
"
\\
#{
"
end
=
"
}
"
contained
syn
match
rubyNoInterpolation
"
\\
#{
"
display
contained
syn
match
rubyNoInterpolation
"
\\
#
\%
(
\$\|
@@
\=\)\w\+
"
display
contained
syn
match
rubyNoInterpolation
"
\\
#
\$\W
"
display
contained
syn
match
rubyDelimEscape
"
\\
[(<{
\[
)>}
\]
]
"
transparent
display
contained
contains
=
NONE
syn
region
rubyNestedParentheses
start
=
"
(
"
skip
=
"
\\\\\|\\
)
"
matchgroup
=
rubyString
end
=
"
)
"
transparent
contained
syn
region
rubyNestedCurlyBraces
start
=
"
{
"
skip
=
"
\\\\\|\\
}
"
matchgroup
=
rubyString
end
=
"
}
"
transparent
contained
syn
region
rubyNestedAngleBrackets
start
=
"
<
"
skip
=
"
\\\\\|\\
>
"
matchgroup
=
rubyString
end
=
"
>
"
transparent
contained
syn
region
rubyNestedSquareBrackets
start
=
"
\[
"
skip
=
"
\\\\\|\\\]
"
matchgroup
=
rubyString
end
=
"
\]
"
transparent
contained
"
These are mostly Oniguruma ready
syn
region
rubyRegexpComment
matchgroup
=
rubyRegexpSpecial
start
=
"
(?#
"
skip
=
"
\\
)
"
end
=
"
)
"
contained
syn
region
rubyRegexpParens
matchgroup
=
rubyRegexpSpecial
start
=
"
(
\(
?:
\|
?<
\=
[=!]
\|
?>
\|
?<[a-z_]
\w
*>
\|
?[imx]*-[imx]*:
\=\|\%
(?#
\)\@
!
\)
"
skip
=
"
\\
)
"
end
=
"
)
"
contained
transparent
contains
=
@rubyRegexpSpecial
syn
region
rubyRegexpBrackets
matchgroup
=
rubyRegexpCharClass
start
=
"
\[\^\=
"
skip
=
"
\\\]
"
end
=
"
\]
"
contained
transparent
contains
=
rubyStringEscape,rubyRegexpEscape,rubyRegexpCharClass
oneline
syn
match
rubyRegexpCharClass
"
\\
[DdHhSsWw]
"
contained
display
syn
match
rubyRegexpCharClass
"
\[
:
\^\=\%
(alnum
\|
alpha
\|
ascii
\|
blank
\|
cntrl
\|
digit
\|
graph
\|
lower
\|
print
\|
punct
\|
space
\|
upper
\|
xdigit
\)
:
\]
"
contained
syn
match
rubyRegexpEscape
"
\\
[].*?+^$|
\\
/(){}[]
"
contained
syn
match
rubyRegexpQuantifier
"
[*?+][?+]
\=
"
contained
display
syn
match
rubyRegexpQuantifier
"
{
\d\+\%
(,
\d
*
\)\=
}?
\=
"
contained
display
syn
match
rubyRegexpAnchor
"
[$^]
\|\\
[ABbGZz]
"
contained
display
syn
match
rubyRegexpDot
"
\.
"
contained
display
syn
match
rubyRegexpSpecial
"
|
"
contained
display
syn
match
rubyRegexpSpecial
"
\\
[1-9]
\d\=\d\@
!
"
contained
display
syn
match
rubyRegexpSpecial
"
\\
k<
\%
([a-z_]
\w
*
\|
-
\=\d\+\)\%
([+-]
\d\+\)\=
>
"
contained
display
syn
match
rubyRegexpSpecial
"
\\
k'
\%
([a-z_]
\w
*
\|
-
\=\d\+\)\%
([+-]
\d\+\)\=
'
"
contained
display
syn
match
rubyRegexpSpecial
"
\\
g<
\%
([a-z_]
\w
*
\|
-
\=\d\+\)
>
"
contained
display
syn
match
rubyRegexpSpecial
"
\\
g'
\%
([a-z_]
\w
*
\|
-
\=\d\+\)
'
"
contained
display
syn
cluster
rubyStringSpecial
contains
=
rubyInterpolation,rubyNoInterpolation,rubyStringEscape
syn
cluster
rubyExtendedStringSpecial
contains
=
@rubyStringSpecial,rubyNestedParentheses,rubyNestedCurlyBraces,rubyNestedAngleBrackets,rubyNestedSquareBrackets
syn
cluster
rubyRegexpSpecial
contains
=
rubyInterpolation,rubyNoInterpolation,rubyStringEscape,rubyRegexpSpecial,rubyRegexpEscape,rubyRegexpBrackets,rubyRegexpCharClass,rubyRegexpDot,rubyRegexpQuantifier,rubyRegexpAnchor,rubyRegexpParens,rubyRegexpComment
"
Numbers and ASCII Codes
syn
match
rubyASCIICode
"
\%
(
\w\|
[]})
\"
'/]
\)\@
<!
\%
(?
\%
(
\\
M-
\\
C-
\|\\
C-
\\
M-
\|\\
M-
\\
c
\|\\
c
\\
M-
\|\\
c
\|\\
C-
\|\\
M-
\)\=\%
(
\\\o\{
1,3}
\|\\
x
\x\{
1,2}
\|\\\=\S\)\)
"
syn
match
rubyInteger
"
\%
(
\%
(
\w\|
[]})
\"
']
\s
*
\)\@
<!-
\)\=\<
0[xX]
\x\+\%
(_
\x\+\)
*
\>
"
display
syn
match
rubyInteger
"
\%
(
\%
(
\w\|
[]})
\"
']
\s
*
\)\@
<!-
\)\=\<\%
(0[dD]
\)\=\%
(0
\|
[1-9]
\d
*
\%
(_
\d\+\)
*
\)\>
"
display
syn
match
rubyInteger
"
\%
(
\%
(
\w\|
[]})
\"
']
\s
*
\)\@
<!-
\)\=\<
0[oO]
\=\o\+\%
(_
\o\+\)
*
\>
"
display
syn
match
rubyInteger
"
\%
(
\%
(
\w\|
[]})
\"
']
\s
*
\)\@
<!-
\)\=\<
0[bB][01]
\+\%
(_[01]
\+\)
*
\>
"
display
syn
match
rubyFloat
"
\%
(
\%
(
\w\|
[]})
\"
']
\s
*
\)\@
<!-
\)\=\<\%
(0
\|
[1-9]
\d
*
\%
(_
\d\+\)
*
\)\.\d\+\%
(_
\d\+\)
*
\>
"
display
syn
match
rubyFloat
"
\%
(
\%
(
\w\|
[]})
\"
']
\s
*
\)\@
<!-
\)\=\<\%
(0
\|
[1-9]
\d
*
\%
(_
\d\+\)
*
\)\%
(
\.\d\+\%
(_
\d\+\)
*
\)\=\%
([eE][-+]
\=\d\+\%
(_
\d\+\)
*
\)\>
"
display
"
Identifiers
syn
match
rubyLocalVariableOrMethod
"
\<
[_[:lower:]][_[:alnum:]]*[?!=]
\=
"
contains
=
NONE
display
transparent
syn
match
rubyBlockArgument
"
&[_[:lower:]][_[:alnum:]]
"
contains
=
NONE
display
transparent
syn
match
rubyConstant
"
\%
(
\%
([.@$]
\@
<!
\.\)\@
<!
\<\|
::
\)\_
s*
\z
s
\u\w
*
\%
(
\>\|
::
\)\@
=
\%
(
\s
*(
\)\@
!
"
syn
match
rubyClassVariable
"
@@
\h\w
*
"
display
syn
match
rubyInstanceVariable
"
@
\h\w
*
"
display
syn
match
rubyGlobalVariable
"
$
\%
(
\h\w
*
\|
-.
\)
"
syn
match
rubySymbol
"
[]})
\"
':]
\@
<!:
\%
(
\^\|\~\|
<<
\|
<=>
\|
<=
\|
<
\|
===
\|
==
\|
=
\~\|
>>
\|
>=
\|
>
\|
|
\|
-@
\|
-
\|
/
\|\[
]=
\|\[
]
\|\*\*\|\*\|
&
\|
%
\|
+@
\|
+
\|
`
\)
"
syn
match
rubySymbol
"
[]})
\"
':]
\@
<!:
\$\%
(-.
\|
[`~<=>_,;:!?/.'"@$*
\&
+0]
\)
"
syn
match
rubySymbol
"
[]})
\"
':]
\@
<!:
\%
(
\$\|
@@
\=\)\=\h\w
*
"
syn
match
rubySymbol
"
[]})
\"
':]
\@
<!:
\h\w
*
\%
([?!=]>
\@
!
\)\=
"
syn
match
rubySymbol
"
\%
([{(,]
\_
s*
\)\@
<=
\l\w
*[!?]
\=
::
\@
!
"
he
=
e
-
1
syn
match
rubySymbol
"
[]})
\"
':]
\@
<!
\h\w
*[!?]
\=
:
\s\@
=
"
he
=
e
-
1
syn
match
rubySymbol
"
\%
([{(,]
\_
s*
\)\@
<=[[:space:],{]
\l\w
*[!?]
\=
::
\@
!
"
hs
=
s
+
1
,
he
=
e
-
1
syn
match
rubySymbol
"
[[:space:],{]
\h\w
*[!?]
\=
:
\s\@
=
"
hs
=
s
+
1
,
he
=
e
-
1
syn
region
rubySymbol
start
=
"
[]})
\"
':]
\@
<!:'
"
end
=
"
'
"
skip
=
"
\\\\\|\\
'
"
contains
=
rubyQuoteEscape
fold
syn
region
rubySymbol
start
=
"
[]})
\"
':]
\@
<!:
\"
"
end
=
"
\"
"
skip
=
"
\\\\\|\\\"
"
contains
=
@rubyStringSpecial
fold
syn
match
rubyBlockParameter
"
\h\w
*
"
contained
syn
region
rubyBlockParameterList
start
=
"
\%
(
\%
(
\<
do
\>\|
{
\)\s
*
\)\@
<=|
"
end
=
"
|
"
oneline
display
contains
=
rubyBlockParameter
syn
match
rubyInvalidVariable
"
$[^ A-Za-z_-]
"
syn
match
rubyPredefinedVariable
#
$[!$&"'*+,./0:;<=>?@
\`
~]
#
syn
match
rubyPredefinedVariable
"
$
\d\+
"
display
syn
match
rubyPredefinedVariable
"
$_
\>
"
display
syn
match
rubyPredefinedVariable
"
$-[0FIKadilpvw]
\>
"
display
syn
match
rubyPredefinedVariable
"
$
\%
(deferr
\|
defout
\|
stderr
\|
stdin
\|
stdout
\)\>
"
display
syn
match
rubyPredefinedVariable
"
$
\%
(DEBUG
\|
FILENAME
\|
KCODE
\|
LOADED_FEATURES
\|
LOAD_PATH
\|
PROGRAM_NAME
\|
SAFE
\|
VERBOSE
\)\>
"
display
syn
match
rubyPredefinedConstant
"
\%
(
\%
(
\.\@
<!
\.\)\@
<!
\|
::
\)\_
s*
\z
s
\%
(MatchingData
\|
ARGF
\|
ARGV
\|
ENV
\)\>\%
(
\s
*(
\)\@
!
"
syn
match
rubyPredefinedConstant
"
\%
(
\%
(
\.\@
<!
\.\)\@
<!
\|
::
\)\_
s*
\z
s
\%
(DATA
\|
FALSE
\|
NIL
\)\>\%
(
\s
*(
\)\@
!
"
syn
match
rubyPredefinedConstant
"
\%
(
\%
(
\.\@
<!
\.\)\@
<!
\|
::
\)\_
s*
\z
s
\%
(STDERR
\|
STDIN
\|
STDOUT
\|
TOPLEVEL_BINDING
\|
TRUE
\)\>\%
(
\s
*(
\)\@
!
"
syn
match
rubyPredefinedConstant
"
\%
(
\%
(
\.\@
<!
\.\)\@
<!
\|
::
\)\_
s*
\z
s
\%
(RUBY_
\%
(VERSION
\|
RELEASE_DATE
\|
PLATFORM
\|
PATCHLEVEL
\|
REVISION
\|
DESCRIPTION
\|
COPYRIGHT
\|
ENGINE
\)\)\>\%
(
\s
*(
\)\@
!
"
"
Normal Regular Expression
syn
region
rubyRegexp
matchgroup
=
rubyRegexpDelimiter
start
=
"
\%
(
\%
(^
\|\<\%
(and
\|
or
\|
while
\|
until
\|
unless
\|
if
\|
elsif
\|
when
\|
not
\|
then
\|
else
\)\|
[;
\~
=!|&(,[>?:]
\)\s
*
\)\@
<=/" end="/[iomxneus]*" skip="
\\\\\|\\
/" contains=@rubyRegexpSpecial keepend fold
syn
region
rubyRegexp
matchgroup
=
rubyRegexpDelimiter
start
=
"
\%
(
\h\k
*
\s\+\)\@
<=/[
\t
=]
\@
!
"
end
=
"
/[iomxneus]*
"
skip
=
"
\\\\\|\\
/
"
contains
=
@rubyRegexpSpecial
fold
"
Generalized Regular Expression
syn
region
rubyRegexp
matchgroup
=
rubyRegexpDelimiter
start
=
"
%r
\z
([~`!@#$%^&*_
\-
+=|
\:
;"',.? /]
\)
"
end
=
"
\z
1[iomxneus]*
"
skip
=
"
\\\\\|\\\z
1
"
contains
=
@rubyRegexpSpecial
fold
syn
region
rubyRegexp
matchgroup
=
rubyRegexpDelimiter
start
=
"
%r{
"
end
=
"
}[iomxneus]*
"
skip
=
"
\\\\\|\\
}
"
contains
=
@rubyRegexpSpecial
fold
syn
region
rubyRegexp
matchgroup
=
rubyRegexpDelimiter
start
=
"
%r<
"
end
=
"
>[iomxneus]*
"
skip
=
"
\\\\\|\\
>
"
contains
=
@rubyRegexpSpecial,rubyNestedAngleBrackets,rubyDelimEscape
fold
syn
region
rubyRegexp
matchgroup
=
rubyRegexpDelimiter
start
=
"
%r
\[
"
end
=
"
\]
[iomxneus]*
"
skip
=
"
\\\\\|\\\]
"
contains
=
@rubyRegexpSpecial
fold
syn
region
rubyRegexp
matchgroup
=
rubyRegexpDelimiter
start
=
"
%r(
"
end
=
"
)[iomxneus]*
"
skip
=
"
\\\\\|\\
)
"
contains
=
@rubyRegexpSpecial
fold
"
Normal String and Shell Command Output
syn
region
rubyString
matchgroup
=
rubyStringDelimiter
start
=
"
\"
"
end
=
"
\"
"
skip
=
"
\\\\\|\\\"
"
contains
=
@rubyStringSpecial,@Spell
fold
syn
region
rubyString
matchgroup
=
rubyStringDelimiter
start
=
"
'
"
end
=
"
'
"
skip
=
"
\\\\\|\\
'
"
contains
=
rubyQuoteEscape,@Spell
fold
syn
region
rubyString
matchgroup
=
rubyStringDelimiter
start
=
"
`
"
end
=
"
`
"
skip
=
"
\\\\\|\\
`
"
contains
=
@rubyStringSpecial
fold
"
Generalized Single Quoted String, Symbol and Array of Strings
syn
region
rubyString
matchgroup
=
rubyStringDelimiter
start
=
"
%[qw]
\z
([~`!@#$%^&*_
\-
+=|
\:
;"',.?/]
\)
"
end
=
"
\z
1
"
skip
=
"
\\\\\|\\\z
1
"
fold
syn
region
rubyString
matchgroup
=
rubyStringDelimiter
start
=
"
%[qw]{
"
end
=
"
}
"
skip
=
"
\\\\\|\\
}
"
fold
contains
=
rubyNestedCurlyBraces,rubyDelimEscape
syn
region
rubyString
matchgroup
=
rubyStringDelimiter
start
=
"
%[qw]<
"
end
=
"
>
"
skip
=
"
\\\\\|\\
>
"
fold
contains
=
rubyNestedAngleBrackets,rubyDelimEscape
syn
region
rubyString
matchgroup
=
rubyStringDelimiter
start
=
"
%[qw]
\[
"
end
=
"
\]
"
skip
=
"
\\\\\|\\\]
"
fold
contains
=
rubyNestedSquareBrackets,rubyDelimEscape
syn
region
rubyString
matchgroup
=
rubyStringDelimiter
start
=
"
%[qw](
"
end
=
"
)
"
skip
=
"
\\\\\|\\
)
"
fold
contains
=
rubyNestedParentheses,rubyDelimEscape
syn
region
rubyString
matchgroup
=
rubyStringDelimiter
start
=
"
%q
"
end
=
"
"
skip
=
"
\\\\\|\\
)
"
fold
syn
region
rubySymbol
matchgroup
=
rubySymbolDelimiter
start
=
"
%s
\z
([~`!@#$%^&*_
\-
+=|
\:
;"',.? /]
\)
"
end
=
"
\z
1
"
skip
=
"
\\\\\|\\\z
1
"
fold
syn
region
rubySymbol
matchgroup
=
rubySymbolDelimiter
start
=
"
%s{
"
end
=
"
}
"
skip
=
"
\\\\\|\\
}
"
fold
contains
=
rubyNestedCurlyBraces,rubyDelimEscape
syn
region
rubySymbol
matchgroup
=
rubySymbolDelimiter
start
=
"
%s<
"
end
=
"
>
"
skip
=
"
\\\\\|\\
>
"
fold
contains
=
rubyNestedAngleBrackets,rubyDelimEscape
syn
region
rubySymbol
matchgroup
=
rubySymbolDelimiter
start
=
"
%s
\[
"
end
=
"
\]
"
skip
=
"
\\\\\|\\\]
"
fold
contains
=
rubyNestedSquareBrackets,rubyDelimEscape
syn
region
rubySymbol
matchgroup
=
rubySymbolDelimiter
start
=
"
%s(
"
end
=
"
)
"
skip
=
"
\\\\\|\\
)
"
fold
contains
=
rubyNestedParentheses,rubyDelimEscape
"
Generalized Double Quoted String and Array of Strings and Shell Command Output
"
Note:
%= is not matched here as the beginning of a double quoted string
syn
region
rubyString
matchgroup
=
rubyStringDelimiter
start
=
"
%
\z
([~`!@#$%^&*_
\-
+|
\:
;"',.?/]
\)
"
end
=
"
\z
1
"
skip
=
"
\\\\\|\\\z
1
"
contains
=
@rubyStringSpecial
fold
syn
region
rubyString
matchgroup
=
rubyStringDelimiter
start
=
"
%[QWx]
\z
([~`!@#$%^&*_
\-
+=|
\:
;"',.?/]
\)
"
end
=
"
\z
1
"
skip
=
"
\\\\\|\\\z
1
"
contains
=
@rubyStringSpecial
fold
syn
region
rubyString
matchgroup
=
rubyStringDelimiter
start
=
"
%[QWx]
\=
{
"
end
=
"
}
"
skip
=
"
\\\\\|\\
}
"
contains
=
@rubyStringSpecial,rubyNestedCurlyBraces,rubyDelimEscape
fold
syn
region
rubyString
matchgroup
=
rubyStringDelimiter
start
=
"
%[QWx]
\=
<
"
end
=
"
>
"
skip
=
"
\\\\\|\\
>
"
contains
=
@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimEscape
fold
syn
region
rubyString
matchgroup
=
rubyStringDelimiter
start
=
"
%[QWx]
\=\[
"
end
=
"
\]
"
skip
=
"
\\\\\|\\\]
"
contains
=
@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimEscape
fold
syn
region
rubyString
matchgroup
=
rubyStringDelimiter
start
=
"
%[QWx]
\=
(
"
end
=
"
)
"
skip
=
"
\\\\\|\\
)
"
contains
=
@rubyStringSpecial,rubyNestedParentheses,rubyDelimEscape
fold
syn
region
rubyString
matchgroup
=
rubyStringDelimiter
start
=
"
%[Qx]
"
end
=
"
"
skip
=
"
\\\\\|\\
)
"
contains
=
@rubyStringSpecial
fold
"
Here Document
syn
region
rubyHeredocStart
matchgroup
=
rubyStringDelimiter
start
=
+
\%
(
\%
(class
\s
*
\|\%
([]})"'.]
\|
::
\)\)\_
s*
\|\w\)\@
<!<<-
\=\z
s
\%
(
\h\w
*
\)
+
end
=
+
$
+
oneline
contains
=
ALLBUT,@rubyNotTop
syn
region
rubyHeredocStart
matchgroup
=
rubyStringDelimiter
start
=
+
\%
(
\%
(class
\s
*
\|\%
([]})"'.]
\|
::
\)\)\_
s*
\|\w\)\@
<!<<-
\=\z
s"
\%
([^"]*
\)
"
+
end
=
+
$
+
oneline
contains
=
ALLBUT,@rubyNotTop
syn
region
rubyHeredocStart
matchgroup
=
rubyStringDelimiter
start
=
+
\%
(
\%
(class
\s
*
\|\%
([]})"'.]
\|
::
\)\)\_
s*
\|\w\)\@
<!<<-
\=\z
s'
\%
([^']*
\)
'
+
end
=
+
$
+
oneline
contains
=
ALLBUT,@rubyNotTop
syn
region
rubyHeredocStart
matchgroup
=
rubyStringDelimiter
start
=
+
\%
(
\%
(class
\s
*
\|\%
([]})"'.]
\|
::
\)\)\_
s*
\|\w\)\@
<!<<-
\=\z
s`
\%
([^`]*
\)
`
+
end
=
+
$
+
oneline
contains
=
ALLBUT,@rubyNotTop
syn
region
rubyString
start
=
+
\%
(
\%
(class
\|
::
\)\_
s*
\|\%
([]})"'.]
\)\s\|\w\)\@
<!<<
\z
(
\h\w
*
\)\z
e
\%
(.*<<-
\=
['`"]
\=\h\)\@
!
+
hs
=
s
+
2
matchgroup
=
rubyStringDelimiter
end
=
+
^
\z
1$
+
contains
=
rubyHeredocStart,rubyHeredoc,@rubyStringSpecial
fold
keepend
syn
region
rubyString
start
=
+
\%
(
\%
(class
\|
::
\)\_
s*
\|\%
([]})"'.]
\)\s\|\w\)\@
<!<<"
\z
([^"]*
\)
"
\z
e
\%
(.*<<-
\=
['`"]
\=\h\)\@
!
+
hs
=
s
+
2
matchgroup
=
rubyStringDelimiter
end
=
+
^
\z
1$
+
contains
=
rubyHeredocStart,rubyHeredoc,@rubyStringSpecial
fold
keepend
syn
region
rubyString
start
=
+
\%
(
\%
(class
\|
::
\)\_
s*
\|\%
([]})"'.]
\)\s\|\w\)\@
<!<<'
\z
([^']*
\)
'
\z
e
\%
(.*<<-
\=
['`"]
\=\h\)\@
!
+
hs
=
s
+
2
matchgroup
=
rubyStringDelimiter
end
=
+
^
\z
1$
+
contains
=
rubyHeredocStart,rubyHeredoc
fold
keepend
syn
region
rubyString
start
=
+
\%
(
\%
(class
\|
::
\)\_
s*
\|\%
([]})"'.]
\)\s\|\w\)\@
<!<<`
\z
([^`]*
\)
`
\z
e
\%
(.*<<-
\=
['`"]
\=\h\)\@
!
+
hs
=
s
+
2
matchgroup
=
rubyStringDelimiter
end
=
+
^
\z
1$
+
contains
=
rubyHeredocStart,rubyHeredoc,@rubyStringSpecial
fold
keepend
syn
region
rubyString
start
=
+
\%
(
\%
(class
\|
::
\)\_
s*
\|\%
([]}).]
\)\s\|\w\)\@
<!<<-
\z
(
\h\w
*
\)\z
e
\%
(.*<<-
\=
['`"]
\=\h\)\@
!
+
hs
=
s
+
3
matchgroup
=
rubyStringDelimiter
end
=
+
^
\s
*
\z
s
\z
1$
+
contains
=
rubyHeredocStart,@rubyStringSpecial
fold
keepend
syn
region
rubyString
start
=
+
\%
(
\%
(class
\|
::
\)\_
s*
\|\%
([]}).]
\)\s\|\w\)\@
<!<<-"
\z
([^"]*
\)
"
\z
e
\%
(.*<<-
\=
['`"]
\=\h\)\@
!
+
hs
=
s
+
3
matchgroup
=
rubyStringDelimiter
end
=
+
^
\s
*
\z
s
\z
1$
+
contains
=
rubyHeredocStart,@rubyStringSpecial
fold
keepend
syn
region
rubyString
start
=
+
\%
(
\%
(class
\|
::
\)\_
s*
\|\%
([]}).]
\)\s\|\w\)\@
<!<<-'
\z
([^']*
\)
'
\z
e
\%
(.*<<-
\=
['`"]
\=\h\)\@
!
+
hs
=
s
+
3
matchgroup
=
rubyStringDelimiter
end
=
+
^
\s
*
\z
s
\z
1$
+
contains
=
rubyHeredocStart
fold
keepend
syn
region
rubyString
start
=
+
\%
(
\%
(class
\|
::
\)\_
s*
\|\%
([]}).]
\)\s\|\w\)\@
<!<<-`
\z
([^`]*
\)
`
\z
e
\%
(.*<<-
\=
['`"]
\=\h\)\@
!
+
hs
=
s
+
3
matchgroup
=
rubyStringDelimiter
end
=
+
^
\s
*
\z
s
\z
1$
+
contains
=
rubyHeredocStart,@rubyStringSpecial
fold
keepend
if
exists
(
'
main_syntax
'
)
&&
main_syntax
==
'
eruby
'
let
b:
ruby_no_expensive
=
1
end
syn
match
rubyAliasDeclaration
"
[^[:space:];#.()]
\+
"
contained
contains
=
rubySymbol,rubyGlobalVariable,rubyPredefinedVariable
nextgroup
=
rubyAliasDeclaration2
skipwhite
syn
match
rubyAliasDeclaration2
"
[^[:space:];#.()]
\+
"
contained
contains
=
rubySymbol,rubyGlobalVariable,rubyPredefinedVariable
syn
match
rubyMethodDeclaration
"
[^[:space:];#(]
\+
"
contained
contains
=
rubyConstant,rubyBoolean,rubyPseudoVariable,rubyInstanceVariable,rubyClassVariable,rubyGlobalVariable
syn
match
rubyClassDeclaration
"
[^[:space:];#<]
\+
"
contained
contains
=
rubyConstant,rubyOperator
syn
match
rubyModuleDeclaration
"
[^[:space:];#<]
\+
"
contained
contains
=
rubyConstant,rubyOperator
syn
match
rubyFunction
"
\<
[_[:alpha:]][_[:alnum:]]*[?!=]
\=
[[:alnum:]_.:?!=]
\@
!
"
contained
containedin
=
rubyMethodDeclaration
syn
match
rubyFunction
"
\%
(
\s\|
^
\)\@
<=[_[:alpha:]][_[:alnum:]]*[?!=]
\=\%
(
\s\|
$
\)\@
=
"
contained
containedin
=
rubyAliasDeclaration,rubyAliasDeclaration2
syn
match
rubyFunction
"
\%
([[:space:].]
\|
^
\)\@
<=
\%
(
\[\]
=
\=\|\*\*\|
[+-]@
\=\|
[*/%|&^~]
\|
<<
\|
>>
\|
[<>]=
\=\|
<=>
\|
===
\|
==
\|
=
\~\|
`
\)\%
([[:space:];#(]
\|
$
\)\@
=
"
contained
containedin
=
rubyAliasDeclaration,rubyAliasDeclaration2,rubyMethodDeclaration
syn
cluster
rubyDeclaration
contains
=
rubyAliasDeclaration,rubyAliasDeclaration2,rubyMethodDeclaration,rubyModuleDeclaration,rubyClassDeclaration,rubyFunction,rubyBlockParameter
"
Keywords
"
Note:
the following keywords have already been defined:
"
begin case class def do end for if module unless until while
syn
match
rubyControl
"
\<\%
(and
\|
break
\|
in
\|
next
\|
not
\|
or
\|
redo
\|
rescue
\|
retry
\|
return
\)\>
[?!]
\@
!
"
syn
match
rubyOperator
"
\<
defined?
"
display
syn
match
rubyKeyword
"
\<\%
(super
\|
yield
\)\>
[?!]
\@
!
"
syn
match
rubyBoolean
"
\<\%
(true
\|
false
\)\>
[?!]
\@
!
"
syn
match
rubyPseudoVariable
"
\<\%
(nil
\|
self
\|
__ENCODING__
\|
__FILE__
\|
__LINE__
\|
__callee__
\|
__method__
\)\>
[?!]
\@
!
"
"
TODO: reorganise
syn
match
rubyBeginEnd
"
\<\%
(BEGIN
\|
END
\)\>
[?!]
\@
!
"
"
Expensive Mode - match 'end' with the appropriate opening keyword for syntax
"
based folding and special highlighting of module/class/method definitions
if
!
exists
(
"
b:ruby_no_expensive
"
)
&&
!
exists
(
"
ruby_no_expensive
"
)
syn
match
rubyDefine
"
\<
alias
\>
"
nextgroup
=
rubyAliasDeclaration
skipwhite
skipnl
syn
match
rubyDefine
"
\<
def
\>
"
nextgroup
=
rubyMethodDeclaration
skipwhite
skipnl
syn
match
rubyDefine
"
\<
undef
\>
"
nextgroup
=
rubyFunction
skipwhite
skipnl
syn
match
rubyClass
"
\<
class
\>
"
nextgroup
=
rubyClassDeclaration
skipwhite
skipnl
syn
match
rubyModule
"
\<
module
\>
"
nextgroup
=
rubyModuleDeclaration
skipwhite
skipnl
syn
region
rubyMethodBlock
start
=
"
\<
def
\>
"
matchgroup
=
rubyDefine
end
=
"
\%
(
\<
def
\_
s
\+\)\@
<!
\<
end
\>
"
contains
=
ALLBUT,@rubyNotTop
fold
syn
region
rubyBlock
start
=
"
\<
class
\>
"
matchgroup
=
rubyClass
end
=
"
\<
end
\>
"
contains
=
ALLBUT,@rubyNotTop
fold
syn
region
rubyBlock
start
=
"
\<
module
\>
"
matchgroup
=
rubyModule
end
=
"
\<
end
\>
"
contains
=
ALLBUT,@rubyNotTop
fold
"
modifiers
syn
match
rubyConditionalModifier
"
\<\%
(if
\|
unless
\)\>
"
display
syn
match
rubyRepeatModifier
"
\<\%
(while
\|
until
\)\>
"
display
syn
region
rubyDoBlock
matchgroup
=
rubyControl
start
=
"
\<
do
\>
"
end
=
"
\<
end
\>
"
contains
=
ALLBUT,@rubyNotTop
fold
"
curly bracket block or hash literal
syn
region
rubyCurlyBlock
start
=
"
{
"
end
=
"
}
"
contains
=
ALLBUT,@rubyNotTop
fold
syn
region
rubyArrayLiteral
matchgroup
=
rubyArrayDelimiter
start
=
"
\%
(
\w\|
[
\]
})]
\)\@
<!
\[
"
end
=
"
]
"
contains
=
ALLBUT,@rubyNotTop
fold
"
statements without 'do'
syn
region
rubyBlockExpression
matchgroup
=
rubyControl
start
=
"
\<
begin
\>
"
end
=
"
\<
end
\>
"
contains
=
ALLBUT,@rubyNotTop
fold
syn
region
rubyCaseExpression
matchgroup
=
rubyConditional
start
=
"
\<
case
\>
"
end
=
"
\<
end
\>
"
contains
=
ALLBUT,@rubyNotTop
fold
syn
region
rubyConditionalExpression
matchgroup
=
rubyConditional
start
=
"
\%
(
\%
(^
\|\.\.\.\=\|
[{:,;([<>~
\*
/%&^|+=-]
\|\%
(
\<
[_[:lower:]][_[:alnum:]]*
\)\@
<![?!]
\)\s
*
\)\@
<=
\%
(if
\|
unless
\)\>
" end="
\<
end
\>
" contains=ALLBUT,@rubyNotTop fold
syn
match
rubyConditional
"
\<\%
(then
\|
else
\|
when
\)\>
[?!]
\@
!
"
contained
containedin
=
rubyCaseExpression
syn
match
rubyConditional
"
\<\%
(then
\|
else
\|
elsif
\)\>
[?!]
\@
!
"
contained
containedin
=
rubyConditionalExpression
syn
match
rubyExceptional
"
\<\%
(
\%
(
\%
(;
\|
^
\)\s
*
\)\@
<=rescue
\|
else
\|
ensure
\)\>
[?!]
\@
!
"
contained
containedin
=
rubyBlockExpression
syn
match
rubyMethodExceptional
"
\<\%
(
\%
(
\%
(;
\|
^
\)\s
*
\)\@
<=rescue
\|
else
\|
ensure
\)\>
[?!]
\@
!
"
contained
containedin
=
rubyMethodBlock
"
statements with optional 'do'
syn
region
rubyOptionalDoLine
matchgroup
=
rubyRepeat
start
=
"
\<
for
\>
[?!]
\@
!
"
start
=
"
\%
(
\%
(^
\|\.\.\.\=\|
[{:,;([<>~
\*
/%&^|+-]
\|\%
(
\<
[_[:lower:]][_[:alnum:]]*
\)\@
<![!=?]
\)\s
*
\)\@
<=
\<\%
(until
\|
while
\)\>
" matchgroup=rubyOptionalDo end="
\%
(
\<
do
\>\)
" end="
\z
e
\%
(;
\|
$
\)
" oneline contains=ALLBUT,@rubyNotTop
syn
region
rubyRepeatExpression
start
=
"
\<
for
\>
[?!]
\@
!
"
start
=
"
\%
(
\%
(^
\|\.\.\.\=\|
[{:,;([<>~
\*
/%&^|+-]
\|\%
(
\<
[_[:lower:]][_[:alnum:]]*
\)\@
<![!=?]
\)\s
*
\)\@
<=
\<\%
(until
\|
while
\)\>
" matchgroup=rubyRepeat end="
\<
end
\>
" contains=ALLBUT,@rubyNotTop nextgroup=rubyOptionalDoLine fold
if
!
exists
(
"
ruby_minlines
"
)
let
ruby_minlines
=
50
endif
exec
"
syn sync minlines=
"
. ruby_minlines
else
syn
match
rubyControl
"
\<
def
\>
[?!]
\@
!
"
nextgroup
=
rubyMethodDeclaration
skipwhite
skipnl
syn
match
rubyControl
"
\<
class
\>
[?!]
\@
!
"
nextgroup
=
rubyClassDeclaration
skipwhite
skipnl
syn
match
rubyControl
"
\<
module
\>
[?!]
\@
!
"
nextgroup
=
rubyModuleDeclaration
skipwhite
skipnl
syn
match
rubyControl
"
\<\%
(case
\|
begin
\|
do
\|
for
\|
if
\|
unless
\|
while
\|
until
\|
else
\|
elsif
\|
ensure
\|
then
\|
when
\|
end
\)\>
[?!]
\@
!
"
syn
match
rubyKeyword
"
\<\%
(alias
\|
undef
\)\>
[?!]
\@
!
"
endif
"
Special Methods
if
!
exists
(
"
ruby_no_special_methods
"
)
syn
keyword
rubyAccess
public protected private public_class_method private_class_method module_function
"
attr is a common variable name
syn
match
rubyAttribute
"
\%
(
\%
(^
\|
;
\)\s
*
\)\@
<=attr
\>\(\s
*[.=]
\)\@
!
"
syn
keyword
rubyAttribute
attr_accessor attr_reader attr_writer
syn
match
rubyControl
"
\<\%
(exit!
\|\%
(abort
\|
at_exit
\|
exit
\|
fork
\|
loop
\|
trap
\)\>
[?!]
\@
!
\)
"
syn
keyword
rubyEval
eval class_eval instance_eval module_eval
syn
keyword
rubyException
raise fail catch throw
"
false positive with 'include?'
syn
match
rubyInclude
"
\<
include
\>
[?!]
\@
!
"
syn
keyword
rubyInclude
autoload
extend
load require require_relative
syn
keyword
rubyKeyword
callcc caller lambda proc
endif
"
Comments and Documentation
syn
match
rubySharpBang
"
\%
^#!.*
"
display
syn
keyword
rubyTodo
FIXME NOTE TODO OPTIMIZE XXX
contained
syn
match
rubyComment
"
#.*
"
contains
=
rubySharpBang,rubySpaceError,rubyTodo,@Spell
if
!
exists
(
"
ruby_no_comment_fold
"
)
syn
region
rubyMultilineComment
start
=
"
\%
(
\%
(^
\s
*#.*
\n\)\@
<!
\%
(^
\s
*#.*
\n\)\)\%
(
\(
^
\s
*#.*
\n\)\{
1,}
\)\@
=
"
end
=
"
\%
(^
\s
*#.*
\n\)\@
<=
\%
(^
\s
*#.*
\n\)\%
(^
\s
*#
\)\@
!
"
contains
=
rubyComment
transparent
fold
keepend
syn
region
rubyDocumentation
start
=
"
^=begin
\z
e
\%
(
\s
.*
\)\=
$
"
end
=
"
^=end
\%
(
\s
.*
\)\=
$
"
contains
=
rubySpaceError,rubyTodo,@Spell
fold
else
syn
region
rubyDocumentation
start
=
"
^=begin
\s
*$
"
end
=
"
^=end
\s
*$
"
contains
=
rubySpaceError,rubyTodo,@Spell
endif
"
Note:
this is a hack to prevent 'keywords' being highlighted as such when called as methods with an explicit receiver
syn
match
rubyKeywordAsMethod
"
\%
(
\%
(
\.\@
<!
\.\)\|
::
\)\_
s*
\%
(alias
\|
and
\|
begin
\|
break
\|
case
\|
class
\|
def
\|
defined
\|
do
\|
else
\)\>
"
transparent
contains
=
NONE
syn
match
rubyKeywordAsMethod
"
\%
(
\%
(
\.\@
<!
\.\)\|
::
\)\_
s*
\%
(elsif
\|
end
\|
ensure
\|
false
\|
for
\|
if
\|
in
\|
module
\|
next
\|
nil
\)\>
"
transparent
contains
=
NONE
syn
match
rubyKeywordAsMethod
"
\%
(
\%
(
\.\@
<!
\.\)\|
::
\)\_
s*
\%
(not
\|
or
\|
redo
\|
rescue
\|
retry
\|
return
\|
self
\|
super
\|
then
\|
true
\)\>
"
transparent
contains
=
NONE
syn
match
rubyKeywordAsMethod
"
\%
(
\%
(
\.\@
<!
\.\)\|
::
\)\_
s*
\%
(undef
\|
unless
\|
until
\|
when
\|
while
\|
yield
\|
BEGIN
\|
END
\|
__FILE__
\|
__LINE__
\)\>
"
transparent
contains
=
NONE
syn
match
rubyKeywordAsMethod
"
\<\%
(alias
\|
begin
\|
case
\|
class
\|
def
\|
do
\|
end
\)
[?!]
"
transparent
contains
=
NONE
syn
match
rubyKeywordAsMethod
"
\<\%
(if
\|
module
\|
undef
\|
unless
\|
until
\|
while
\)
[?!]
"
transparent
contains
=
NONE
syn
match
rubyKeywordAsMethod
"
\%
(
\%
(
\.\@
<!
\.\)\|
::
\)\_
s*
\%
(abort
\|
at_exit
\|
attr
\|
attr_accessor
\|
attr_reader
\)\>
"
transparent
contains
=
NONE
syn
match
rubyKeywordAsMethod
"
\%
(
\%
(
\.\@
<!
\.\)\|
::
\)\_
s*
\%
(attr_writer
\|
autoload
\|
callcc
\|
catch
\|
caller
\)\>
"
transparent
contains
=
NONE
syn
match
rubyKeywordAsMethod
"
\%
(
\%
(
\.\@
<!
\.\)\|
::
\)\_
s*
\%
(eval
\|
class_eval
\|
instance_eval
\|
module_eval
\|
exit
\)\>
"
transparent
contains
=
NONE
syn
match
rubyKeywordAsMethod
"
\%
(
\%
(
\.\@
<!
\.\)\|
::
\)\_
s*
\%
(extend
\|
fail
\|
fork
\|
include
\|
lambda
\)\>
"
transparent
contains
=
NONE
syn
match
rubyKeywordAsMethod
"
\%
(
\%
(
\.\@
<!
\.\)\|
::
\)\_
s*
\%
(load
\|
loop
\|
private
\|
proc
\|
protected
\)\>
"
transparent
contains
=
NONE
syn
match
rubyKeywordAsMethod
"
\%
(
\%
(
\.\@
<!
\.\)\|
::
\)\_
s*
\%
(public
\|
require
\|
require_relative
\|
raise
\|
throw
\|
trap
\)\>
"
transparent
contains
=
NONE
"
__END__ Directive
syn
region
rubyData
matchgroup
=
rubyDataDirective
start
=
"
^__END__$
"
end
=
"
\%
$
"
fold
hi
def
link
rubyClass
rubyDefine
hi
def
link
rubyModule
rubyDefine
hi
def
link
rubyMethodExceptional
rubyDefine
hi
def
link
rubyDefine
Define
hi
def
link
rubyFunction
Function
hi
def
link
rubyConditional
Conditional
hi
def
link
rubyConditionalModifier
rubyConditional
hi
def
link
rubyExceptional
rubyConditional
hi
def
link
rubyRepeat
Repeat
hi
def
link
rubyRepeatModifier
rubyRepeat
hi
def
link
rubyOptionalDo
rubyRepeat
hi
def
link
rubyControl
Statement
hi
def
link
rubyInclude
Include
hi
def
link
rubyInteger
Number
hi
def
link
rubyASCIICode
Character
hi
def
link
rubyFloat
Float
hi
def
link
rubyBoolean
Boolean
hi
def
link
rubyException
Exception
if
!
exists
(
"
ruby_no_identifiers
"
)
hi
def
link
rubyIdentifier
Identifier
else
hi
def
link
rubyIdentifier
NONE
endif
hi
def
link
rubyClassVariable
rubyIdentifier
hi
def
link
rubyConstant
Type
hi
def
link
rubyGlobalVariable
rubyIdentifier
hi
def
link
rubyBlockParameter
rubyIdentifier
hi
def
link
rubyInstanceVariable
rubyIdentifier
hi
def
link
rubyPredefinedIdentifier
rubyIdentifier
hi
def
link
rubyPredefinedConstant
rubyPredefinedIdentifier
hi
def
link
rubyPredefinedVariable
rubyPredefinedIdentifier
hi
def
link
rubySymbol
Constant
hi
def
link
rubyKeyword
Keyword
hi
def
link
rubyOperator
Operator
hi
def
link
rubyBeginEnd
Statement
hi
def
link
rubyAccess
Statement
hi
def
link
rubyAttribute
Statement
hi
def
link
rubyEval
Statement
hi
def
link
rubyPseudoVariable
Constant
hi
def
link
rubyComment
Comment
hi
def
link
rubyData
Comment
hi
def
link
rubyDataDirective
Delimiter
hi
def
link
rubyDocumentation
Comment
hi
def
link
rubyTodo
Todo
hi
def
link
rubyQuoteEscape
rubyStringEscape
hi
def
link
rubyStringEscape
Special
hi
def
link
rubyInterpolationDelimiter
Delimiter
hi
def
link
rubyNoInterpolation
rubyString
hi
def
link
rubySharpBang
PreProc
hi
def
link
rubyRegexpDelimiter
rubyStringDelimiter
hi
def
link
rubySymbolDelimiter
rubyStringDelimiter
hi
def
link
rubyStringDelimiter
Delimiter
hi
def
link
rubyHeredoc
rubyString
hi
def
link
rubyString
String
hi
def
link
rubyRegexpEscape
rubyRegexpSpecial
hi
def
link
rubyRegexpQuantifier
rubyRegexpSpecial
hi
def
link
rubyRegexpAnchor
rubyRegexpSpecial
hi
def
link
rubyRegexpDot
rubyRegexpCharClass
hi
def
link
rubyRegexpCharClass
rubyRegexpSpecial
hi
def
link
rubyRegexpSpecial
Special
hi
def
link
rubyRegexpComment
Comment
hi
def
link
rubyRegexp
rubyString
hi
def
link
rubyInvalidVariable
Error
hi
def
link
rubyError
Error
hi
def
link
rubySpaceError
rubyError
let
b:
current_syntax
=
"
ruby
"
"
vim:
nowrap
sw
=
2
sts
=
2
ts
=
8
noet
:
Back
|
FazBrowse Home
|
New Git URL