xref: /vim-8.2.3635/runtime/syntax/icon.vim (revision f37506f6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	Icon
3071d4279SBram Moolenaar" Maintainer:	Wendell Turner <[email protected]>
4071d4279SBram Moolenaar" URL:		ftp://ftp.halcyon.com/pub/users/wturner/icon.vim
5071d4279SBram Moolenaar" Last Change:	2003 May 11
6071d4279SBram Moolenaar
789bcfda6SBram Moolenaar" quit when a syntax file was already loaded
889bcfda6SBram Moolenaarif exists("b:current_syntax")
9071d4279SBram Moolenaar  finish
10071d4279SBram Moolenaarendif
11071d4279SBram Moolenaar
12071d4279SBram Moolenaarsyn keyword  iconFunction   abs acos any args asin atan bal
13071d4279SBram Moolenaarsyn keyword  iconFunction   callout center char chdir close collect copy
14071d4279SBram Moolenaarsyn keyword  iconFunction   cos cset delay delete detab display dtor
15071d4279SBram Moolenaarsyn keyword  iconFunction   entab errorclear exit exp find flush function
16071d4279SBram Moolenaarsyn keyword  iconFunction   get getch getche getenv iand icom image
17071d4279SBram Moolenaarsyn keyword  iconFunction   insert integer ior ishift ixor kbhit key
18071d4279SBram Moolenaarsyn keyword  iconFunction   left list loadfunc log many map match
19071d4279SBram Moolenaarsyn keyword  iconFunction   member move name numeric open ord pop
20071d4279SBram Moolenaarsyn keyword  iconFunction   pos proc pull push put read reads
21071d4279SBram Moolenaarsyn keyword  iconFunction   real remove rename repl reverse right rtod
22071d4279SBram Moolenaarsyn keyword  iconFunction   runerr save seek seq set sin sort
23071d4279SBram Moolenaarsyn keyword  iconFunction   sortf sqrt stop string system tab table
24071d4279SBram Moolenaarsyn keyword  iconFunction   tan trim type upto variable where write writes
25071d4279SBram Moolenaar
26071d4279SBram Moolenaar" Keywords
27071d4279SBram Moolenaarsyn match iconKeyword "&allocated"
28071d4279SBram Moolenaarsyn match iconKeyword "&ascii"
29071d4279SBram Moolenaarsyn match iconKeyword "&clock"
30071d4279SBram Moolenaarsyn match iconKeyword "&collections"
31071d4279SBram Moolenaarsyn match iconKeyword "&cset"
32071d4279SBram Moolenaarsyn match iconKeyword "&current"
33071d4279SBram Moolenaarsyn match iconKeyword "&date"
34071d4279SBram Moolenaarsyn match iconKeyword "&dateline"
35071d4279SBram Moolenaarsyn match iconKeyword "&digits"
36071d4279SBram Moolenaarsyn match iconKeyword "&dump"
37071d4279SBram Moolenaarsyn match iconKeyword "&e"
38071d4279SBram Moolenaarsyn match iconKeyword "&error"
39071d4279SBram Moolenaarsyn match iconKeyword "&errornumber"
40071d4279SBram Moolenaarsyn match iconKeyword "&errortext"
41071d4279SBram Moolenaarsyn match iconKeyword "&errorvalue"
42071d4279SBram Moolenaarsyn match iconKeyword "&errout"
43071d4279SBram Moolenaarsyn match iconKeyword "&fail"
44071d4279SBram Moolenaarsyn match iconKeyword "&features"
45071d4279SBram Moolenaarsyn match iconKeyword "&file"
46071d4279SBram Moolenaarsyn match iconKeyword "&host"
47071d4279SBram Moolenaarsyn match iconKeyword "&input"
48071d4279SBram Moolenaarsyn match iconKeyword "&lcase"
49071d4279SBram Moolenaarsyn match iconKeyword "&letters"
50071d4279SBram Moolenaarsyn match iconKeyword "&level"
51071d4279SBram Moolenaarsyn match iconKeyword "&line"
52071d4279SBram Moolenaarsyn match iconKeyword "&main"
53071d4279SBram Moolenaarsyn match iconKeyword "&null"
54071d4279SBram Moolenaarsyn match iconKeyword "&output"
55071d4279SBram Moolenaarsyn match iconKeyword "&phi"
56071d4279SBram Moolenaarsyn match iconKeyword "&pi"
57071d4279SBram Moolenaarsyn match iconKeyword "&pos"
58071d4279SBram Moolenaarsyn match iconKeyword "&progname"
59071d4279SBram Moolenaarsyn match iconKeyword "&random"
60071d4279SBram Moolenaarsyn match iconKeyword "&regions"
61071d4279SBram Moolenaarsyn match iconKeyword "&source"
62071d4279SBram Moolenaarsyn match iconKeyword "&storage"
63071d4279SBram Moolenaarsyn match iconKeyword "&subject"
64071d4279SBram Moolenaarsyn match iconKeyword "&time"
65071d4279SBram Moolenaarsyn match iconKeyword "&trace"
66071d4279SBram Moolenaarsyn match iconKeyword "&ucase"
67071d4279SBram Moolenaarsyn match iconKeyword "&version"
68071d4279SBram Moolenaar
69071d4279SBram Moolenaar" Reserved words
70071d4279SBram Moolenaarsyn keyword iconReserved break by case create default do
71071d4279SBram Moolenaarsyn keyword iconReserved else end every fail if
72071d4279SBram Moolenaarsyn keyword iconReserved initial link next not of
73071d4279SBram Moolenaarsyn keyword iconReserved procedure repeat return suspend
74071d4279SBram Moolenaarsyn keyword iconReserved then to until while
75071d4279SBram Moolenaar
76071d4279SBram Moolenaar" Storage class reserved words
77071d4279SBram Moolenaarsyn keyword	iconStorageClass	global static local record
78071d4279SBram Moolenaar
79071d4279SBram Moolenaarsyn keyword	iconTodo	contained TODO FIXME XXX BUG
80071d4279SBram Moolenaar
81071d4279SBram Moolenaar" String and Character constants
82071d4279SBram Moolenaar" Highlight special characters (those which have a backslash) differently
83071d4279SBram Moolenaarsyn match iconSpecial contained "\\x\x\{2}\|\\\o\{3\}\|\\[bdeflnrtv\"\'\\]\|\\^c[a-zA-Z0-9]\|\\$"
84071d4279SBram Moolenaarsyn region	iconString	start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=iconSpecial
85071d4279SBram Moolenaarsyn region	iconCset	start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=iconSpecial
86071d4279SBram Moolenaarsyn match	iconCharacter	"'[^\\]'"
87071d4279SBram Moolenaar
88071d4279SBram Moolenaar" not sure about these
89071d4279SBram Moolenaar"syn match	iconSpecialCharacter "'\\[bdeflnrtv]'"
90071d4279SBram Moolenaar"syn match	iconSpecialCharacter "'\\\o\{3\}'"
91071d4279SBram Moolenaar"syn match	iconSpecialCharacter "'\\x\x\{2}'"
92071d4279SBram Moolenaar"syn match	iconSpecialCharacter "'\\^c\[a-zA-Z0-9]'"
93071d4279SBram Moolenaar
94071d4279SBram Moolenaar"when wanted, highlight trailing white space
95071d4279SBram Moolenaarif exists("icon_space_errors")
96071d4279SBram Moolenaar  syn match	iconSpaceError	"\s*$"
97071d4279SBram Moolenaar  syn match	iconSpaceError	" \+\t"me=e-1
98071d4279SBram Moolenaarendif
99071d4279SBram Moolenaar
100071d4279SBram Moolenaar"catch errors caused by wrong parenthesis
101071d4279SBram Moolenaarsyn cluster	iconParenGroup contains=iconParenError,iconIncluded,iconSpecial,iconTodo,iconUserCont,iconUserLabel,iconBitField
102071d4279SBram Moolenaar
103071d4279SBram Moolenaarsyn region	iconParen	transparent start='(' end=')' contains=ALLBUT,@iconParenGroup
104071d4279SBram Moolenaarsyn match	iconParenError	")"
105071d4279SBram Moolenaarsyn match	iconInParen	contained "[{}]"
106071d4279SBram Moolenaar
107071d4279SBram Moolenaar
108071d4279SBram Moolenaarsyn case ignore
109071d4279SBram Moolenaar
110071d4279SBram Moolenaar"integer number, or floating point number without a dot
111071d4279SBram Moolenaarsyn match	iconNumber		"\<\d\+\>"
112071d4279SBram Moolenaar
113071d4279SBram Moolenaar"floating point number, with dot, optional exponent
114071d4279SBram Moolenaarsyn match	iconFloat		"\<\d\+\.\d*\(e[-+]\=\d\+\)\=\>"
115071d4279SBram Moolenaar
116071d4279SBram Moolenaar"floating point number, starting with a dot, optional exponent
117071d4279SBram Moolenaarsyn match	iconFloat		"\.\d\+\(e[-+]\=\d\+\)\=\>"
118071d4279SBram Moolenaar
119071d4279SBram Moolenaar"floating point number, without dot, with exponent
120071d4279SBram Moolenaarsyn match	iconFloat		"\<\d\+e[-+]\=\d\+\>"
121071d4279SBram Moolenaar
122071d4279SBram Moolenaar"radix number
123071d4279SBram Moolenaarsyn match	iconRadix		"\<\d\{1,2}[rR][a-zA-Z0-9]\+\>"
124071d4279SBram Moolenaar
125071d4279SBram Moolenaar
126071d4279SBram Moolenaar" syn match iconIdentifier	"\<[a-z_][a-z0-9_]*\>"
127071d4279SBram Moolenaar
128071d4279SBram Moolenaarsyn case match
129071d4279SBram Moolenaar
130071d4279SBram Moolenaar" Comment
131071d4279SBram Moolenaarsyn match	iconComment	"#.*" contains=iconTodo,iconSpaceError
132071d4279SBram Moolenaar
133071d4279SBram Moolenaarsyn region	iconPreCondit start="^\s*$\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=iconComment,iconString,iconCharacter,iconNumber,iconCommentError,iconSpaceError
134071d4279SBram Moolenaar
135071d4279SBram Moolenaarsyn region	iconIncluded	contained start=+"+ skip=+\\\\\|\\"+ end=+"+
136071d4279SBram Moolenaarsyn match	iconIncluded	contained "<[^>]*>"
137071d4279SBram Moolenaarsyn match	iconInclude	"^\s*$\s*include\>\s*["<]" contains=iconIncluded
138071d4279SBram Moolenaar"syn match iconLineSkip	"\\$"
139071d4279SBram Moolenaar
140071d4279SBram Moolenaarsyn cluster	iconPreProcGroup contains=iconPreCondit,iconIncluded,iconInclude,iconDefine,iconInParen,iconUserLabel
141071d4279SBram Moolenaar
142071d4279SBram Moolenaarsyn region	iconDefine	start="^\s*$\s*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,@iconPreProcGroup
143071d4279SBram Moolenaar
144071d4279SBram Moolenaar"wt:syn region	iconPreProc "start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" "end="$" contains=ALLBUT,@iconPreProcGroup
145071d4279SBram Moolenaar
146071d4279SBram Moolenaar" Highlight User Labels
147071d4279SBram Moolenaar
148071d4279SBram Moolenaar" syn cluster	iconMultiGroup contains=iconIncluded,iconSpecial,iconTodo,iconUserCont,iconUserLabel,iconBitField
149071d4279SBram Moolenaar
150071d4279SBram Moolenaarif !exists("icon_minlines")
151071d4279SBram Moolenaar  let icon_minlines = 15
152071d4279SBram Moolenaarendif
153071d4279SBram Moolenaarexec "syn sync ccomment iconComment minlines=" . icon_minlines
154071d4279SBram Moolenaar
155071d4279SBram Moolenaar" Define the default highlighting.
156071d4279SBram Moolenaar
15789bcfda6SBram Moolenaar" Only when an item doesn't have highlighting
158071d4279SBram Moolenaar
159071d4279SBram Moolenaar" The default methods for highlighting.  Can be overridden later
160071d4279SBram Moolenaar
161*f37506f6SBram Moolenaar" hi def link iconSpecialCharacter	iconSpecial
162071d4279SBram Moolenaar
163*f37506f6SBram Moolenaarhi def link iconOctalError		iconError
164*f37506f6SBram Moolenaarhi def link iconParenError		iconError
165*f37506f6SBram Moolenaarhi def link iconInParen		iconError
166*f37506f6SBram Moolenaarhi def link iconCommentError	iconError
167*f37506f6SBram Moolenaarhi def link iconSpaceError		iconError
168*f37506f6SBram Moolenaarhi def link iconCommentError	iconError
169*f37506f6SBram Moolenaarhi def link iconIncluded		iconString
170*f37506f6SBram Moolenaarhi def link iconCommentString	iconString
171*f37506f6SBram Moolenaarhi def link iconComment2String	iconString
172*f37506f6SBram Moolenaarhi def link iconCommentSkip	iconComment
173071d4279SBram Moolenaar
174*f37506f6SBram Moolenaarhi def link iconUserLabel		Label
175*f37506f6SBram Moolenaarhi def link iconCharacter		Character
176*f37506f6SBram Moolenaarhi def link iconNumber			Number
177*f37506f6SBram Moolenaarhi def link iconRadix			Number
178*f37506f6SBram Moolenaarhi def link iconFloat			Float
179*f37506f6SBram Moolenaarhi def link iconInclude		Include
180*f37506f6SBram Moolenaarhi def link iconPreProc		PreProc
181*f37506f6SBram Moolenaarhi def link iconDefine			Macro
182*f37506f6SBram Moolenaarhi def link iconError			Error
183*f37506f6SBram Moolenaarhi def link iconStatement		Statement
184*f37506f6SBram Moolenaarhi def link iconPreCondit		PreCondit
185*f37506f6SBram Moolenaarhi def link iconString			String
186*f37506f6SBram Moolenaarhi def link iconCset			String
187*f37506f6SBram Moolenaarhi def link iconComment		Comment
188*f37506f6SBram Moolenaarhi def link iconSpecial		SpecialChar
189*f37506f6SBram Moolenaarhi def link iconTodo			Todo
190*f37506f6SBram Moolenaarhi def link iconStorageClass	StorageClass
191*f37506f6SBram Moolenaarhi def link iconFunction		Statement
192*f37506f6SBram Moolenaarhi def link iconReserved		Label
193*f37506f6SBram Moolenaarhi def link iconKeyword		Operator
194071d4279SBram Moolenaar
195*f37506f6SBram Moolenaar"hi def link iconIdentifier	Identifier
196071d4279SBram Moolenaar
197071d4279SBram Moolenaar
198071d4279SBram Moolenaarlet b:current_syntax = "icon"
199071d4279SBram Moolenaar
200