Mercurial > hg > RemoteEditor > vim7
comparison runtime/syntax/rebol.vim @ 0:76efa0be13f1
Initial revision
author | atsuki |
---|---|
date | Sat, 10 Nov 2007 15:07:22 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:76efa0be13f1 |
---|---|
1 " Vim syntax file | |
2 " Language: Rebol | |
3 " Maintainer: Mike Williams <mrw@eandem.co.uk> | |
4 " Filenames: *.r | |
5 " Last Change: 27th June 2002 | |
6 " URL: http://www.eandem.co.uk/mrw/vim | |
7 " | |
8 | |
9 " For version 5.x: Clear all syntax items | |
10 " For version 6.x: Quit when a syntax file was already loaded | |
11 if version < 600 | |
12 syntax clear | |
13 elseif exists("b:current_syntax") | |
14 finish | |
15 endif | |
16 | |
17 " Rebol is case insensitive | |
18 syn case ignore | |
19 | |
20 " As per current users documentation | |
21 if version < 600 | |
22 set isk=@,48-57,?,!,.,',+,-,*,&,\|,=,_,~ | |
23 else | |
24 setlocal isk=@,48-57,?,!,.,',+,-,*,&,\|,=,_,~ | |
25 endif | |
26 | |
27 " Yer TODO highlighter | |
28 syn keyword rebolTodo contained TODO | |
29 | |
30 " Comments | |
31 syn match rebolComment ";.*$" contains=rebolTodo | |
32 | |
33 " Words | |
34 syn match rebolWord "\a\k*" | |
35 syn match rebolWordPath "[^[:space:]]/[^[:space]]"ms=s+1,me=e-1 | |
36 | |
37 " Booleans | |
38 syn keyword rebolBoolean true false on off yes no | |
39 | |
40 " Values | |
41 " Integers | |
42 syn match rebolInteger "\<[+-]\=\d\+\('\d*\)*\>" | |
43 " Decimals | |
44 syn match rebolDecimal "[+-]\=\(\d\+\('\d*\)*\)\=[,.]\d*\(e[+-]\=\d\+\)\=" | |
45 syn match rebolDecimal "[+-]\=\d\+\('\d*\)*\(e[+-]\=\d\+\)\=" | |
46 " Time | |
47 syn match rebolTime "[+-]\=\(\d\+\('\d*\)*\:\)\{1,2}\d\+\('\d*\)*\([.,]\d\+\)\=\([AP]M\)\=\>" | |
48 syn match rebolTime "[+-]\=:\d\+\([.,]\d*\)\=\([AP]M\)\=\>" | |
49 " Dates | |
50 " DD-MMM-YY & YYYY format | |
51 syn match rebolDate "\d\{1,2}\([/-]\)\(Jan\|Feb\|Mar\|Apr\|May\|Jun\|Jul\|Aug\|Sep\|Oct\|Nov\|Dec\)\1\(\d\{2}\)\{1,2}\>" | |
52 " DD-month-YY & YYYY format | |
53 syn match rebolDate "\d\{1,2}\([/-]\)\(January\|February\|March\|April\|May\|June\|July\|August\|September\|October\|November\|December\)\1\(\d\{2}\)\{1,2}\>" | |
54 " DD-MM-YY & YY format | |
55 syn match rebolDate "\d\{1,2}\([/-]\)\d\{1,2}\1\(\d\{2}\)\{1,2}\>" | |
56 " YYYY-MM-YY format | |
57 syn match rebolDate "\d\{4}-\d\{1,2}-\d\{1,2}\>" | |
58 " DD.MM.YYYY format | |
59 syn match rebolDate "\d\{1,2}\.\d\{1,2}\.\d\{4}\>" | |
60 " Money | |
61 syn match rebolMoney "\a*\$\d\+\('\d*\)*\([,.]\d\+\)\=" | |
62 " Strings | |
63 syn region rebolString oneline start=+"+ skip=+^"+ end=+"+ contains=rebolSpecialCharacter | |
64 syn region rebolString start=+[^#]{+ end=+}+ skip=+{[^}]*}+ contains=rebolSpecialCharacter | |
65 " Binary | |
66 syn region rebolBinary start=+\d*#{+ end=+}+ contains=rebolComment | |
67 " Email | |
68 syn match rebolEmail "\<\k\+@\(\k\+\.\)*\k\+\>" | |
69 " File | |
70 syn match rebolFile "%\(\k\+/\)*\k\+[/]\=" contains=rebolSpecialCharacter | |
71 syn region rebolFile oneline start=+%"+ end=+"+ contains=rebolSpecialCharacter | |
72 " URLs | |
73 syn match rebolURL "http://\k\+\(\.\k\+\)*\(:\d\+\)\=\(/\(\k\+/\)*\(\k\+\)\=\)*" | |
74 syn match rebolURL "file://\k\+\(\.\k\+\)*/\(\k\+/\)*\k\+" | |
75 syn match rebolURL "ftp://\(\k\+:\k\+@\)\=\k\+\(\.\k\+\)*\(:\d\+\)\=/\(\k\+/\)*\k\+" | |
76 syn match rebolURL "mailto:\k\+\(\.\k\+\)*@\k\+\(\.\k\+\)*" | |
77 " Issues | |
78 syn match rebolIssue "#\(\d\+-\)*\d\+" | |
79 " Tuples | |
80 syn match rebolTuple "\(\d\+\.\)\{2,}" | |
81 | |
82 " Characters | |
83 syn match rebolSpecialCharacter contained "\^[^[:space:][]" | |
84 syn match rebolSpecialCharacter contained "%\d\+" | |
85 | |
86 | |
87 " Operators | |
88 " Math operators | |
89 syn match rebolMathOperator "\(\*\{1,2}\|+\|-\|/\{1,2}\)" | |
90 syn keyword rebolMathFunction abs absolute add arccosine arcsine arctangent cosine | |
91 syn keyword rebolMathFunction divide exp log-10 log-2 log-e max maximum min | |
92 syn keyword rebolMathFunction minimum multiply negate power random remainder sine | |
93 syn keyword rebolMathFunction square-root subtract tangent | |
94 " Binary operators | |
95 syn keyword rebolBinaryOperator complement and or xor ~ | |
96 " Logic operators | |
97 syn match rebolLogicOperator "[<>=]=\=" | |
98 syn match rebolLogicOperator "<>" | |
99 syn keyword rebolLogicOperator not | |
100 syn keyword rebolLogicFunction all any | |
101 syn keyword rebolLogicFunction head? tail? | |
102 syn keyword rebolLogicFunction negative? positive? zero? even? odd? | |
103 syn keyword rebolLogicFunction binary? block? char? date? decimal? email? empty? | |
104 syn keyword rebolLogicFunction file? found? function? integer? issue? logic? money? | |
105 syn keyword rebolLogicFunction native? none? object? paren? path? port? series? | |
106 syn keyword rebolLogicFunction string? time? tuple? url? word? | |
107 syn keyword rebolLogicFunction exists? input? same? value? | |
108 | |
109 " Datatypes | |
110 syn keyword rebolType binary! block! char! date! decimal! email! file! | |
111 syn keyword rebolType function! integer! issue! logic! money! native! | |
112 syn keyword rebolType none! object! paren! path! port! string! time! | |
113 syn keyword rebolType tuple! url! word! | |
114 syn keyword rebolTypeFunction type? | |
115 | |
116 " Control statements | |
117 syn keyword rebolStatement break catch exit halt reduce return shield | |
118 syn keyword rebolConditional if else | |
119 syn keyword rebolRepeat for forall foreach forskip loop repeat while until do | |
120 | |
121 " Series statements | |
122 syn keyword rebolStatement change clear copy fifth find first format fourth free | |
123 syn keyword rebolStatement func function head insert last match next parse past | |
124 syn keyword rebolStatement pick remove second select skip sort tail third trim length? | |
125 | |
126 " Context | |
127 syn keyword rebolStatement alias bind use | |
128 | |
129 " Object | |
130 syn keyword rebolStatement import make make-object rebol info? | |
131 | |
132 " I/O statements | |
133 syn keyword rebolStatement delete echo form format import input load mold prin | |
134 syn keyword rebolStatement print probe read save secure send write | |
135 syn keyword rebolOperator size? modified? | |
136 | |
137 " Debug statement | |
138 syn keyword rebolStatement help probe trace | |
139 | |
140 " Misc statements | |
141 syn keyword rebolStatement func function free | |
142 | |
143 " Constants | |
144 syn keyword rebolConstant none | |
145 | |
146 | |
147 " Define the default highlighting. | |
148 " For version 5.7 and earlier: only when not done already | |
149 " For version 5.8 and later: only when an item doesn't have highlighting yet | |
150 if version >= 508 || !exists("did_rebol_syntax_inits") | |
151 if version < 508 | |
152 let did_rebol_syntax_inits = 1 | |
153 command -nargs=+ HiLink hi link <args> | |
154 else | |
155 command -nargs=+ HiLink hi def link <args> | |
156 endif | |
157 | |
158 HiLink rebolTodo Todo | |
159 | |
160 HiLink rebolStatement Statement | |
161 HiLink rebolLabel Label | |
162 HiLink rebolConditional Conditional | |
163 HiLink rebolRepeat Repeat | |
164 | |
165 HiLink rebolOperator Operator | |
166 HiLink rebolLogicOperator rebolOperator | |
167 HiLink rebolLogicFunction rebolLogicOperator | |
168 HiLink rebolMathOperator rebolOperator | |
169 HiLink rebolMathFunction rebolMathOperator | |
170 HiLink rebolBinaryOperator rebolOperator | |
171 HiLink rebolBinaryFunction rebolBinaryOperator | |
172 | |
173 HiLink rebolType Type | |
174 HiLink rebolTypeFunction rebolOperator | |
175 | |
176 HiLink rebolWord Identifier | |
177 HiLink rebolWordPath rebolWord | |
178 HiLink rebolFunction Function | |
179 | |
180 HiLink rebolCharacter Character | |
181 HiLink rebolSpecialCharacter SpecialChar | |
182 HiLink rebolString String | |
183 | |
184 HiLink rebolNumber Number | |
185 HiLink rebolInteger rebolNumber | |
186 HiLink rebolDecimal rebolNumber | |
187 HiLink rebolTime rebolNumber | |
188 HiLink rebolDate rebolNumber | |
189 HiLink rebolMoney rebolNumber | |
190 HiLink rebolBinary rebolNumber | |
191 HiLink rebolEmail rebolString | |
192 HiLink rebolFile rebolString | |
193 HiLink rebolURL rebolString | |
194 HiLink rebolIssue rebolNumber | |
195 HiLink rebolTuple rebolNumber | |
196 HiLink rebolFloat Float | |
197 HiLink rebolBoolean Boolean | |
198 | |
199 HiLink rebolConstant Constant | |
200 | |
201 HiLink rebolComment Comment | |
202 | |
203 HiLink rebolError Error | |
204 | |
205 delcommand HiLink | |
206 endif | |
207 | |
208 if exists("my_rebol_file") | |
209 if file_readable(expand(my_rebol_file)) | |
210 execute "source " . my_rebol_file | |
211 endif | |
212 endif | |
213 | |
214 let b:current_syntax = "rebol" | |
215 | |
216 " vim: ts=8 |