1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
|
" Vim syntax file
" Language: Icon
" Maintainer: Wendell Turner <wendell@adsi-m4.com>
" URL: ftp://ftp.halcyon.com/pub/users/wturner/icon.vim
" Last Change: 2003 May 11
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
syn keyword iconFunction abs acos any args asin atan bal
syn keyword iconFunction callout center char chdir close collect copy
syn keyword iconFunction cos cset delay delete detab display dtor
syn keyword iconFunction entab errorclear exit exp find flush function
syn keyword iconFunction get getch getche getenv iand icom image
syn keyword iconFunction insert integer ior ishift ixor kbhit key
syn keyword iconFunction left list loadfunc log many map match
syn keyword iconFunction member move name numeric open ord pop
syn keyword iconFunction pos proc pull push put read reads
syn keyword iconFunction real remove rename repl reverse right rtod
syn keyword iconFunction runerr save seek seq set sin sort
syn keyword iconFunction sortf sqrt stop string system tab table
syn keyword iconFunction tan trim type upto variable where write writes
" Keywords
syn match iconKeyword "&allocated"
syn match iconKeyword "&ascii"
syn match iconKeyword "&clock"
syn match iconKeyword "&collections"
syn match iconKeyword "&cset"
syn match iconKeyword "¤t"
syn match iconKeyword "&date"
syn match iconKeyword "&dateline"
syn match iconKeyword "&digits"
syn match iconKeyword "&dump"
syn match iconKeyword "&e"
syn match iconKeyword "&error"
syn match iconKeyword "&errornumber"
syn match iconKeyword "&errortext"
syn match iconKeyword "&errorvalue"
syn match iconKeyword "&errout"
syn match iconKeyword "&fail"
syn match iconKeyword "&features"
syn match iconKeyword "&file"
syn match iconKeyword "&host"
syn match iconKeyword "&input"
syn match iconKeyword "&lcase"
syn match iconKeyword "&letters"
syn match iconKeyword "&level"
syn match iconKeyword "&line"
syn match iconKeyword "&main"
syn match iconKeyword "&null"
syn match iconKeyword "&output"
syn match iconKeyword "&phi"
syn match iconKeyword "&pi"
syn match iconKeyword "&pos"
syn match iconKeyword "&progname"
syn match iconKeyword "&random"
syn match iconKeyword "®ions"
syn match iconKeyword "&source"
syn match iconKeyword "&storage"
syn match iconKeyword "&subject"
syn match iconKeyword "&time"
syn match iconKeyword "&trace"
syn match iconKeyword "&ucase"
syn match iconKeyword "&version"
" Reserved words
syn keyword iconReserved break by case create default do
syn keyword iconReserved else end every fail if
syn keyword iconReserved initial link next not of
syn keyword iconReserved procedure repeat return suspend
syn keyword iconReserved then to until while
" Storage class reserved words
syn keyword iconStorageClass global static local record
syn keyword iconTodo contained TODO FIXME XXX BUG
" String and Character constants
" Highlight special characters (those which have a backslash) differently
syn match iconSpecial contained "\\x\x\{2}\|\\\o\{3\}\|\\[bdeflnrtv\"\'\\]\|\\^c[a-zA-Z0-9]\|\\$"
syn region iconString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=iconSpecial
syn region iconCset start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=iconSpecial
syn match iconCharacter "'[^\\]'"
" not sure about these
"syn match iconSpecialCharacter "'\\[bdeflnrtv]'"
"syn match iconSpecialCharacter "'\\\o\{3\}'"
"syn match iconSpecialCharacter "'\\x\x\{2}'"
"syn match iconSpecialCharacter "'\\^c\[a-zA-Z0-9]'"
"when wanted, highlight trailing white space
if exists("icon_space_errors")
syn match iconSpaceError "\s*$"
syn match iconSpaceError " \+\t"me=e-1
endif
"catch errors caused by wrong parenthesis
syn cluster iconParenGroup contains=iconParenError,iconIncluded,iconSpecial,iconTodo,iconUserCont,iconUserLabel,iconBitField
syn region iconParen transparent start='(' end=')' contains=ALLBUT,@iconParenGroup
syn match iconParenError ")"
syn match iconInParen contained "[{}]"
syn case ignore
"integer number, or floating point number without a dot
syn match iconNumber "\<\d\+\>"
"floating point number, with dot, optional exponent
syn match iconFloat "\<\d\+\.\d*\(e[-+]\=\d\+\)\=\>"
"floating point number, starting with a dot, optional exponent
syn match iconFloat "\.\d\+\(e[-+]\=\d\+\)\=\>"
"floating point number, without dot, with exponent
syn match iconFloat "\<\d\+e[-+]\=\d\+\>"
"radix number
syn match iconRadix "\<\d\{1,2}[rR][a-zA-Z0-9]\+\>"
" syn match iconIdentifier "\<[a-z_][a-z0-9_]*\>"
syn case match
" Comment
syn match iconComment "#.*" contains=iconTodo,iconSpaceError
syn region iconPreCondit start="^\s*$\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=iconComment,iconString,iconCharacter,iconNumber,iconCommentError,iconSpaceError
syn region iconIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match iconIncluded contained "<[^>]*>"
syn match iconInclude "^\s*$\s*include\>\s*["<]" contains=iconIncluded
"syn match iconLineSkip "\\$"
syn cluster iconPreProcGroup contains=iconPreCondit,iconIncluded,iconInclude,iconDefine,iconInParen,iconUserLabel
syn region iconDefine start="^\s*$\s*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,@iconPreProcGroup
"wt:syn region iconPreProc "start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" "end="$" contains=ALLBUT,@iconPreProcGroup
" Highlight User Labels
" syn cluster iconMultiGroup contains=iconIncluded,iconSpecial,iconTodo,iconUserCont,iconUserLabel,iconBitField
if !exists("icon_minlines")
let icon_minlines = 15
endif
exec "syn sync ccomment iconComment minlines=" . icon_minlines
" Define the default highlighting.
" Only when an item doesn't have highlighting
command -nargs=+ HiLink hi def link <args>
" The default methods for highlighting. Can be overridden later
" HiLink iconSpecialCharacter iconSpecial
HiLink iconOctalError iconError
HiLink iconParenError iconError
HiLink iconInParen iconError
HiLink iconCommentError iconError
HiLink iconSpaceError iconError
HiLink iconCommentError iconError
HiLink iconIncluded iconString
HiLink iconCommentString iconString
HiLink iconComment2String iconString
HiLink iconCommentSkip iconComment
HiLink iconUserLabel Label
HiLink iconCharacter Character
HiLink iconNumber Number
HiLink iconRadix Number
HiLink iconFloat Float
HiLink iconInclude Include
HiLink iconPreProc PreProc
HiLink iconDefine Macro
HiLink iconError Error
HiLink iconStatement Statement
HiLink iconPreCondit PreCondit
HiLink iconString String
HiLink iconCset String
HiLink iconComment Comment
HiLink iconSpecial SpecialChar
HiLink iconTodo Todo
HiLink iconStorageClass StorageClass
HiLink iconFunction Statement
HiLink iconReserved Label
HiLink iconKeyword Operator
"HiLink iconIdentifier Identifier
delcommand HiLink
let b:current_syntax = "icon"
|