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