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