1" Vim syntax file 2" Language: Ruby 3" Maintainer: Doug Kearns <djkea2 at gus.gscit.monash.edu.au> 4" Info: $Id$ 5" URL: http://vim-ruby.sourceforge.net 6" Anon CVS: See above site 7" Licence: GPL (http://www.gnu.org) 8" Disclaimer: 9" This program is distributed in the hope that it will be useful, 10" but WITHOUT ANY WARRANTY; without even the implied warranty of 11" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12" GNU General Public License for more details. 13" ---------------------------------------------------------------------------- 14" 15" Previous Maintainer: Mirko Nasato 16" Thanks to perl.vim authors, and to Reimer Behrends. :-) (MN) 17" ---------------------------------------------------------------------------- 18 19" For version 5.x: Clear all syntax items 20" For version 6.x: Quit when a syntax file was already loaded 21if version < 600 22 syntax clear 23elseif exists("b:current_syntax") 24 finish 25endif 26 27if has("folding") && exists("ruby_fold") 28 setlocal foldmethod=syntax 29endif 30 31if exists("ruby_space_errors") 32 if !exists("ruby_no_trail_space_error") 33 syn match rubySpaceError display excludenl "\s\+$" 34 endif 35 if !exists("ruby_no_tab_space_error") 36 syn match rubySpaceError display " \+\t"me=e-1 37 endif 38endif 39 40" Expression Substitution and Backslash Notation 41syn match rubyEscape "\\\\\|\\[abefnrstv]\|\\\o\{1,3}\|\\x\x\{1,2}" contained display 42syn match rubyEscape "\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)" contained display 43syn match rubyInterpolation "#{[^}]*}" contained 44syn match rubyInterpolation "#\%(\$\|@@\=\)\w\+" contained display 45syn match rubyNoInterpolation "\\#{[^}]*}" contained 46syn match rubyNoInterpolation "\\#\%(\$\|@@\=\)\w\+" contained display 47 48syn match rubyDelimEscape "\\[(<{\[)>}\]]" transparent display contained contains=NONE 49 50syn region rubyNestedParentheses start="(" end=")" skip="\\\\\|\\)" transparent contained contains=@rubyStringSpecial,rubyNestedParentheses,rubyDelimEscape 51syn region rubyNestedCurlyBraces start="{" end="}" skip="\\\\\|\\}" transparent contained contains=@rubyStringSpecial,rubyNestedCurlyBraces,rubyDelimEscape 52syn region rubyNestedAngleBrackets start="<" end=">" skip="\\\\\|\\>" transparent contained contains=@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimEscape 53syn region rubyNestedSquareBrackets start="\[" end="\]" skip="\\\\\|\\\]" transparent contained contains=@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimEscape 54 55syn cluster rubyStringSpecial contains=rubyInterpolation,rubyNoInterpolation,rubyEscape 56syn cluster rubyExtendedStringSpecial contains=@rubyStringSpecial,rubyNestedParentheses,rubyNestedCurlyBraces,rubyNestedAngleBrackets,rubyNestedSquareBrackets 57 58" Numbers and ASCII Codes 59syn match rubyASCIICode "\w\@<!\%(?\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\=\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)\)" 60syn match rubyInteger "\<0[xX]\x\+\%(_\x\+\)*\>" display 61syn match rubyInteger "\<\%(0[dD]\)\=\%(0\|[1-9]\d*\%(_\d\+\)*\)\>" display 62syn match rubyInteger "\<0[oO]\=\o\+\%(_\o\+\)*\>" display 63syn match rubyInteger "\<0[bB][01]\+\%(_[01]\+\)*\>" display 64syn match rubyFloat "\<\%(0\|[1-9]\d*\%(_\d\+\)*\)\.\d\+\%(_\d\+\)*\>" display 65syn match rubyFloat "\<\%(0\|[1-9]\d*\%(_\d\+\)*\)\%(\.\d\+\%(_\d\+\)*\)\=\%([eE][-+]\=\d\+\%(_\d\+\)*\)\>" display 66 67" Identifiers 68syn match rubyLocalVariableOrMethod "\<[_[:lower:]][_[:alnum:]]*[?!=]\=" contains=NONE display transparent 69syn match rubyBlockArgument "&[_[:lower:]][_[:alnum:]]" contains=NONE display transparent 70 71syn match rubyConstant "\%(\%(\.\@<!\.\)\@<!\<\|::\)\_s*\zs\u\w*\>\%(\s*(\)\@!" 72syn match rubyClassVariable "@@\h\w*" display 73syn match rubyInstanceVariable "@\h\w*" display 74syn match rubyGlobalVariable "$\%(\h\w*\|-.\)" 75syn match rubySymbol ":\@<!:\%(\^\|\~\|<<\|<=>\|<=\|<\|===\|==\|=\~\|>>\|>=\|>\||\|-@\|-\|/\|\[]=\|\[]\|\*\*\|\*\|&\|%\|+@\|+\|`\)" 76syn match rubySymbol ":\@<!:\$\%(-.\|[`~<=>_,;:!?/.'"@$*\&+0]\)" 77syn match rubySymbol ":\@<!:\%(\$\|@@\=\)\=\h\w*[?!=]\=" 78syn region rubySymbol start=":\@<!:\"" end="\"" skip="\\\\\|\\\"" 79syn match rubyBlockParameter "\%(\%(\<do\>\|{\)\s*\)\@<=|\s*\zs[( ,a-zA-Z0-9_*)]\+\ze\s*|" display 80 81syn match rubyPredefinedVariable #$[!$&"'*+,./0:;<=>?@\`~1-9]# 82syn match rubyPredefinedVariable "$_\>" display 83syn match rubyPredefinedVariable "$-[0FIKadilpvw]\>" display 84syn match rubyPredefinedVariable "$\%(deferr\|defout\|stderr\|stdin\|stdout\)\>" display 85syn match rubyPredefinedVariable "$\%(DEBUG\|FILENAME\|KCODE\|LOADED_FEATURES\|LOAD_PATH\|PROGRAM_NAME\|SAFE\|VERBOSE\)\>" display 86syn match rubyPredefinedConstant "\%(\%(\.\@<!\.\)\@<!\|::\)\_s*\zs\%(MatchingData\|ARGF\|ARGV\|ENV\)\>\%(\s*(\)\@!" 87syn match rubyPredefinedConstant "\%(\%(\.\@<!\.\)\@<!\|::\)\_s*\zs\%(DATA\|FALSE\|NIL\|RUBY_PLATFORM\|RUBY_RELEASE_DATE\)\>\%(\s*(\)\@!" 88syn match rubyPredefinedConstant "\%(\%(\.\@<!\.\)\@<!\|::\)\_s*\zs\%(RUBY_VERSION\|STDERR\|STDIN\|STDOUT\|TOPLEVEL_BINDING\|TRUE\)\>\%(\s*(\)\@!" 89"Obsolete Global Constants 90"syn match rubyPredefinedConstant "\%(::\)\=\zs\%(PLATFORM\|RELEASE_DATE\|VERSION\)\>" 91"syn match rubyPredefinedConstant "\%(::\)\=\zs\%(NotImplementError\)\>" 92 93" Normal Regular Expression 94syn region rubyString matchgroup=rubyStringDelimiter start="\%(\%(^\|\<\%(and\|or\|while\|until\|unless\|if\|elsif\|when\|not\|then\)\|[;\~=!|&(,[>]\)\s*\)\@<=/" end="/[iomx]*" skip="\\\\\|\\/" contains=@rubyStringSpecial 95syn region rubyString matchgroup=rubyStringDelimiter start="\%(\<\%(split\|scan\|gsub\|sub\)\s*\)\@<=/" end="/[iomx]*" skip="\\\\\|\\/" contains=@rubyStringSpecial 96 97" Normal String and Shell Command Output 98syn region rubyString matchgroup=rubyStringDelimiter start="\"" end="\"" skip="\\\\\|\\\"" contains=@rubyStringSpecial 99syn region rubyString matchgroup=rubyStringDelimiter start="'" end="'" skip="\\\\\|\\'" 100syn region rubyString matchgroup=rubyStringDelimiter start="`" end="`" skip="\\\\\|\\`" contains=@rubyStringSpecial 101 102" Generalized Regular Expression 103syn region rubyString matchgroup=rubyStringDelimiter start="%r\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1[iomx]*" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold 104syn region rubyString matchgroup=rubyStringDelimiter start="%r{" end="}[iomx]*" skip="\\\\\|\\}" contains=@rubyStringSpecial,rubyNestedCurlyBraces,rubyDelimEscape fold 105syn region rubyString matchgroup=rubyStringDelimiter start="%r<" end=">[iomx]*" skip="\\\\\|\\>" contains=@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimEscape fold 106syn region rubyString matchgroup=rubyStringDelimiter start="%r\[" end="\][iomx]*" skip="\\\\\|\\\]" contains=@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimEscape fold 107syn region rubyString matchgroup=rubyStringDelimiter start="%r(" end=")[iomx]*" skip="\\\\\|\\)" contains=@rubyStringSpecial,rubyNestedParentheses,rubyDelimEscape fold 108 109" Generalized Single Quoted String, Symbol and Array of Strings 110syn region rubyString matchgroup=rubyStringDelimiter start="%[qsw]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold 111syn region rubyString matchgroup=rubyStringDelimiter start="%[qsw]{" end="}" skip="\\\\\|\\}" fold contains=rubyNestedCurlyBraces,rubyDelimEscape 112syn region rubyString matchgroup=rubyStringDelimiter start="%[qsw]<" end=">" skip="\\\\\|\\>" fold contains=rubyNestedAngleBrackets,rubyDelimEscape 113syn region rubyString matchgroup=rubyStringDelimiter start="%[qsw]\[" end="\]" skip="\\\\\|\\\]" fold contains=rubyNestedSquareBrackets,rubyDelimEscape 114syn region rubyString matchgroup=rubyStringDelimiter start="%[qsw](" end=")" skip="\\\\\|\\)" fold contains=rubyNestedParentheses,rubyDelimEscape 115 116" Generalized Double Quoted String and Array of Strings and Shell Command Output 117" Note: %= is not matched here as the beginning of a double quoted string 118syn region rubyString matchgroup=rubyStringDelimiter start="%\z([~`!@#$%^&*_\-+|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold 119syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold 120syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\={" end="}" skip="\\\\\|\\}" contains=@rubyStringSpecial,rubyNestedCurlyBraces,rubyDelimEscape fold 121syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=<" end=">" skip="\\\\\|\\>" contains=@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimEscape fold 122syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=\[" end="\]" skip="\\\\\|\\\]" contains=@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimEscape fold 123syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=(" end=")" skip="\\\\\|\\)" contains=@rubyStringSpecial,rubyNestedParentheses,rubyDelimEscape fold 124 125" Here Document 126syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\s*\|\%(\.\|::\)\)\_s*\)\@<!<<-\=\zs\%(\h\w*\)+ end=+$+ oneline contains=TOP 127syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\s*\|\%(\.\|::\)\)\_s*\)\@<!<<-\=\zs"\%([^"]*\)"+ end=+$+ oneline contains=TOP 128syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\s*\|\%(\.\|::\)\)\_s*\)\@<!<<-\=\zs'\%([^']*\)'+ end=+$+ oneline contains=TOP 129syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\s*\|\%(\.\|::\)\)\_s*\)\@<!<<-\=\zs`\%([^`]*\)`+ end=+$+ oneline contains=TOP 130 131syn region rubyString start=+\%(\%(class\s*\|\%(\.\|::\)\)\_s*\)\@<!<<\z(\h\w*\)\ze+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,@rubyStringSpecial nextgroup=rubyFunction fold keepend 132syn region rubyString start=+\%(\%(class\s*\|\%(\.\|::\)\)\_s*\)\@<!<<"\z([^"]*\)"\ze+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,@rubyStringSpecial nextgroup=rubyFunction fold keepend 133syn region rubyString start=+\%(\%(class\s*\|\%(\.\|::\)\)\_s*\)\@<!<<'\z([^']*\)'\ze+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart nextgroup=rubyFunction fold keepend 134syn region rubyString start=+\%(\%(class\s*\|\%(\.\|::\)\)\_s*\)\@<!<<`\z([^`]*\)`\ze+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,@rubyStringSpecial nextgroup=rubyFunction fold keepend 135 136syn region rubyString start=+\%(\%(class\s*\|\%(\.\|::\)\)\_s*\)\@<!<<-\z(\h\w*\)\ze+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial nextgroup=rubyFunction fold keepend 137syn region rubyString start=+\%(\%(class\s*\|\%(\.\|::\)\)\_s*\)\@<!<<-"\z([^"]*\)"\ze+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial nextgroup=rubyFunction fold keepend 138syn region rubyString start=+\%(\%(class\s*\|\%(\.\|::\)\)\_s*\)\@<!<<-'\z([^']*\)'\ze+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart nextgroup=rubyFunction fold keepend 139syn region rubyString start=+\%(\%(class\s*\|\%(\.\|::\)\)\_s*\)\@<!<<-`\z([^`]*\)`\ze+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial nextgroup=rubyFunction fold keepend 140 141if exists('main_syntax') && main_syntax == 'eruby' 142 let b:ruby_no_expensive = 1 143end 144 145" Expensive Mode - colorize *end* according to opening statement 146if !exists("b:ruby_no_expensive") && !exists("ruby_no_expensive") 147 syn region rubyFunction matchgroup=rubyDefine start="\<def\s\+" end="\%(\s*\%(\s\|(\|;\|$\|#\)\)\@=" oneline 148 syn region rubyClass matchgroup=rubyDefine start="\<class\s\+" end="\%(\s*\%(\s\|<\|;\|$\|#\)\)\@=" oneline 149 syn match rubyDefine "\<class\ze<<" 150 syn region rubyModule matchgroup=rubyDefine start="\<module\s\+" end="\%(\s*\%(\s\|;\|$\|#\)\)\@=" oneline 151 152 syn region rubyBlock start="\<def\>" matchgroup=rubyDefine end="\<end\>" contains=ALLBUT,@rubyExtendedStringSpecial,rubyTodo nextgroup=rubyFunction fold 153 syn region rubyBlock start="\<class\>" matchgroup=rubyDefine end="\<end\>" contains=ALLBUT,@rubyExtendedStringSpecial,rubyTodo nextgroup=rubyClass fold 154 syn region rubyBlock start="\<module\>" matchgroup=rubyDefine end="\<end\>" contains=ALLBUT,@rubyExtendedStringSpecial,rubyTodo nextgroup=rubyModule fold 155 156 " modifiers 157 syn match rubyControl "\<\%(if\|unless\|while\|until\)\>" display 158 159 " *do* requiring *end* 160 syn region rubyDoBlock matchgroup=rubyControl start="\<do\>" end="\<end\>" contains=ALLBUT,@rubyExtendedStringSpecial,rubyTodo fold 161 162 " *{* requiring *}* 163 syn region rubyCurlyBlock start="{" end="}" contains=ALLBUT,@rubyExtendedStringSpecial,rubyTodo fold 164 165 " statements without *do* 166 syn region rubyNoDoBlock matchgroup=rubyControl start="\<\%(case\|begin\)\>" start="\%(^\|\.\.\.\=\|[,;=([<>~\*/%!&^|+-]\)\s*\zs\%(if\|unless\)\>" end="\<end\>" contains=ALLBUT,@rubyExtendedStringSpecial,rubyTodo fold 167 168 " statement with optional *do* 169 syn region rubyOptDoLine matchgroup=rubyControl start="\<for\>" start="\%(\%(^\|\.\.\.\=\|[?:,;=([<>~\*/%!&^|+-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![!=?]\)\s*\)\@<=\<\%(until\|while\)\>" end="\%(\<do\>\|:\)" end="\ze\%(;\|$\)" oneline contains=ALLBUT,@rubyExtendedStringSpecial,rubyTodo 170 syn region rubyOptDoBlock start="\<for\>" start="\%(\%(^\|\.\.\.\=\|[:,;([<>~\*/%&^|+-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![!=?]\)\s*\)\@<=\<\%(until\|while\)\>" matchgroup=rubyControl end="\<end\>" contains=ALLBUT,@rubyExtendedStringSpecial,rubyTodo nextgroup=rubyOptDoLine fold 171 172 if !exists("ruby_minlines") 173 let ruby_minlines = 50 174 endif 175 exec "syn sync minlines=" . ruby_minlines 176 177else 178 syn region rubyFunction matchgroup=rubyControl start="\<def\s\+" end="\ze\%(\s\|(\|;\|$\)" oneline 179 syn region rubyClass matchgroup=rubyControl start="\<class\s\+" end="\ze\%(\s\|<\|;\|$\)" oneline 180 syn match rubyControl "\<class\ze<<" 181 syn region rubyModule matchgroup=rubyControl start="\<module\s\+" end="\ze\%(\s\|;\|$\)" oneline 182 syn keyword rubyControl case begin do for if unless while until end 183endif 184 185" Keywords 186" Note: the following keywords have already been defined: 187" begin case class def do end for if module unless until while 188syn keyword rubyControl and break else elsif ensure in next not or redo rescue retry return then when 189syn match rubyOperator "\<defined?" display 190syn keyword rubyKeyword alias super undef yield 191syn keyword rubyBoolean true false 192syn keyword rubyPseudoVariable nil self __FILE__ __LINE__ 193syn keyword rubyBeginEnd BEGIN END 194 195" Special Methods 196if !exists("ruby_no_special_methods") 197 syn keyword rubyAccess public protected private 198 syn keyword rubyAttribute attr attr_accessor attr_reader attr_writer 199 syn match rubyControl "\<\%(exit!\|\%(abort\|at_exit\|exit\|fork\|loop\|trap\)\>\)" 200 syn keyword rubyEval eval class_eval instance_eval module_eval 201 syn keyword rubyException raise fail catch throw 202 syn keyword rubyInclude autoload extend include load require 203 syn keyword rubyKeyword callcc caller lambda proc 204endif 205 206" Comments and Documentation 207syn match rubySharpBang "\%^#!.*" display 208syn keyword rubyTodo FIXME NOTE TODO XXX contained 209syn match rubyComment "#.*" contains=rubySharpBang,rubySpaceError,rubyTodo,@Spell 210syn region rubyDocumentation start="^=begin" end="^=end.*$" contains=rubySpaceError,rubyTodo,@Spell fold 211 212" Note: this is a hack to prevent 'keywords' being highlighted as such when called as methods with an explicit receiver 213syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(alias\|and\|begin\|break\|case\|class\|def\|defined\|do\|else\)\>" transparent contains=NONE 214syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(elsif\|end\|ensure\|false\|for\|if\|in\|module\|next\|nil\)\>" transparent contains=NONE 215syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(not\|or\|redo\|rescue\|retry\|return\|self\|super\|then\|true\)\>" transparent contains=NONE 216syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(undef\|unless\|until\|when\|while\|yield\|BEGIN\|END\|__FILE__\|__LINE__\)\>" transparent contains=NONE 217 218syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(abort\|at_exit\|attr\|attr_accessor\|attr_reader\)\>" transparent contains=NONE 219syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(attr_writer\|autoload\|callcc\|catch\|caller\)\>" transparent contains=NONE 220syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(eval\|class_eval\|instance_eval\|module_eval\|exit\)\>" transparent contains=NONE 221syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(extend\|fail\|fork\|include\|lambda\)\>" transparent contains=NONE 222syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(load\|loop\|private\|proc\|protected\)\>" transparent contains=NONE 223syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(public\|require\|raise\|throw\|trap\)\>" transparent contains=NONE 224 225" __END__ Directive 226syn region rubyData matchgroup=rubyDataDirective start="^__END__$" end="\%$" fold 227 228" Define the default highlighting. 229" For version 5.7 and earlier: only when not done already 230" For version 5.8 and later: only when an item doesn't have highlighting yet 231if version >= 508 || !exists("did_ruby_syntax_inits") 232 if version < 508 233 let did_ruby_syntax_inits = 1 234 command -nargs=+ HiLink hi link <args> 235 else 236 command -nargs=+ HiLink hi def link <args> 237 endif 238 239 HiLink rubyDefine Define 240 HiLink rubyFunction Function 241 HiLink rubyControl Statement 242 HiLink rubyInclude Include 243 HiLink rubyInteger Number 244 HiLink rubyASCIICode rubyInteger 245 HiLink rubyFloat Float 246 HiLink rubyBoolean rubyPseudoVariable 247 HiLink rubyException Exception 248 HiLink rubyClass Type 249 HiLink rubyModule Type 250 if !exists("ruby_no_identifiers") 251 HiLink rubyIdentifier Identifier 252 else 253 HiLink rubyIdentifier NONE 254 endif 255 HiLink rubyClassVariable rubyIdentifier 256 HiLink rubyConstant rubyIdentifier 257 HiLink rubyGlobalVariable rubyIdentifier 258 HiLink rubyBlockParameter rubyIdentifier 259 HiLink rubyInstanceVariable rubyIdentifier 260 HiLink rubyPredefinedIdentifier rubyIdentifier 261 HiLink rubyPredefinedConstant rubyPredefinedIdentifier 262 HiLink rubyPredefinedVariable rubyPredefinedIdentifier 263 HiLink rubySymbol rubyIdentifier 264 HiLink rubyKeyword Keyword 265 HiLink rubyOperator Operator 266 HiLink rubyBeginEnd Statement 267 HiLink rubyAccess Statement 268 HiLink rubyAttribute Statement 269 HiLink rubyEval Statement 270 HiLink rubyPseudoVariable Constant 271 272 HiLink rubyComment Comment 273 HiLink rubyData Comment 274 HiLink rubyDataDirective Delimiter 275 HiLink rubyDocumentation Comment 276 HiLink rubyEscape Special 277 HiLink rubyInterpolation Special 278 HiLink rubyNoInterpolation rubyString 279 HiLink rubySharpBang PreProc 280 HiLink rubyStringDelimiter Delimiter 281 HiLink rubyString String 282 HiLink rubyTodo Todo 283 284 HiLink rubyError Error 285 HiLink rubySpaceError rubyError 286 287 delcommand HiLink 288endif 289 290let b:current_syntax = "ruby" 291 292" vim: nowrap sw=2 sts=2 ts=8 ff=unix: 293