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