blob: b4d023600ca5c3b498b0b0e4e86e2a401580b45e [file] [log] [blame]
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001" Vim syntax file
2" Informix Structured Query Language (SQL) and Stored Procedure Language (SPL)
3" Language: SQL, SPL (Informix Dynamic Server 2000 v9.2)
4" Maintainer: Dean Hill <dhill@hotmail.com>
5" Last Change: 2004 Aug 30
6
7" For version 5.x: Clear all syntax items
8" For version 6.x: Quit when a syntax file was already loaded
9if version < 600
10 syntax clear
11elseif exists("b:current_syntax")
12 finish
13endif
14
15syn case ignore
16
17
18
19" === Comment syntax group ===
20syn region sqlComment start="{" end="}" contains=sqlTodo
21syn match sqlComment "--.*$" contains=sqlTodo
22syn sync ccomment sqlComment
23
24
25
26" === Constant syntax group ===
27" = Boolean subgroup =
28syn keyword sqlBoolean true false
29syn keyword sqlBoolean null
30syn keyword sqlBoolean public user
31syn keyword sqlBoolean current today
32syn keyword sqlBoolean year month day hour minute second fraction
33
34" = String subgroup =
35syn region sqlString start=+"+ end=+"+
36syn region sqlString start=+'+ end=+'+
37
38" = Numbers subgroup =
39syn match sqlNumber "-\=\<\d*\.\=[0-9_]\>"
40
41
42
43" === Statement syntax group ===
44" SQL
45syn keyword sqlStatement allocate alter
46syn keyword sqlStatement begin
47syn keyword sqlStatement close commit connect create
48syn keyword sqlStatement database deallocate declare delete describe disconnect drop
49syn keyword sqlStatement execute fetch flush free get grant info insert
50syn keyword sqlStatement load lock open output
51syn keyword sqlStatement prepare put
52syn keyword sqlStatement rename revoke rollback select set start stop
53syn keyword sqlStatement truncate unload unlock update
54syn keyword sqlStatement whenever
55" SPL
56syn keyword sqlStatement call continue define
57syn keyword sqlStatement exit
58syn keyword sqlStatement let
59syn keyword sqlStatement return system trace
60
61" = Conditional subgroup =
62" SPL
63syn keyword sqlConditional elif else if then
64syn keyword sqlConditional case
65" Highlight "end if" with one or more separating spaces
66syn match sqlConditional "end \+if"
67
68" = Repeat subgroup =
69" SQL/SPL
70" Handle SQL triggers' "for each row" clause and SPL "for" loop
71syn match sqlRepeat "for\( \+each \+row\)\="
72" SPL
73syn keyword sqlRepeat foreach while
74" Highlight "end for", etc. with one or more separating spaces
75syn match sqlRepeat "end \+for"
76syn match sqlRepeat "end \+foreach"
77syn match sqlRepeat "end \+while"
78
79" = Exception subgroup =
80" SPL
81syn match sqlException "on \+exception"
82syn match sqlException "end \+exception"
83syn match sqlException "end \+exception \+with \+resume"
84syn match sqlException "raise \+exception"
85
86" = Keyword subgroup =
87" SQL
88syn keyword sqlKeyword aggregate add as authorization autofree by
89syn keyword sqlKeyword cache cascade check cluster collation
90syn keyword sqlKeyword column connection constraint cross
91syn keyword sqlKeyword dataskip debug default deferred_prepare
92syn keyword sqlKeyword descriptor diagnostics
93syn keyword sqlKeyword each escape explain external
94syn keyword sqlKeyword file foreign fragment from function
95syn keyword sqlKeyword group having
96syn keyword sqlKeyword immediate index inner into isolation
97syn keyword sqlKeyword join key
98syn keyword sqlKeyword left level log
99syn keyword sqlKeyword mode modify mounting new no
100syn keyword sqlKeyword object of old optical option
101syn keyword sqlKeyword optimization order outer
102syn keyword sqlKeyword pdqpriority pload primary procedure
103syn keyword sqlKeyword references referencing release reserve
104syn keyword sqlKeyword residency right role routine row
105syn keyword sqlKeyword schedule schema scratch session set
106syn keyword sqlKeyword statement statistics synonym
107syn keyword sqlKeyword table temp temporary timeout to transaction trigger
108syn keyword sqlKeyword using values view violations
109syn keyword sqlKeyword where with work
110" Highlight "on" (if it's not followed by some words we've already handled)
111syn match sqlKeyword "on \+\(exception\)\@!"
112" SPL
113" Highlight "end" (if it's not followed by some words we've already handled)
114syn match sqlKeyword "end \+\(if\|for\|foreach\|while\|exception\)\@!"
115syn keyword sqlKeyword resume returning
116
117" = Operator subgroup =
118" SQL
119syn keyword sqlOperator not and or
120syn keyword sqlOperator in is any some all between exists
121syn keyword sqlOperator like matches
122syn keyword sqlOperator union intersect
123syn keyword sqlOperator distinct unique
124
125
126
127" === Identifier syntax group ===
128" = Function subgroup =
129" SQL
130syn keyword sqlFunction abs acos asin atan atan2 avg
131syn keyword sqlFunction cardinality cast char_length character_length cos count
132syn keyword sqlFunction exp filetoblob filetoclob hex
133syn keyword sqlFunction initcap length logn log10 lower lpad
134syn keyword sqlFunction min max mod octet_length pow range replace root round rpad
135syn keyword sqlFunction sin sqrt stdev substr substring sum
136syn keyword sqlFunction to_char tan to_date trim trunc upper variance
137
138
139
140" === Type syntax group ===
141" SQL
142syn keyword sqlType blob boolean byte char character clob
143syn keyword sqlType date datetime dec decimal double
144syn keyword sqlType float int int8 integer interval list lvarchar
145syn keyword sqlType money multiset nchar numeric nvarchar
146syn keyword sqlType real serial serial8 smallfloat smallint
147syn keyword sqlType text varchar varying
148
149
150
151" === Todo syntax group ===
152syn keyword sqlTodo TODO FIXME XXX DEBUG NOTE
153
154
155
156" Define the default highlighting.
157" For version 5.7 and earlier: only when not done already
158" For version 5.8 and later: only when an item doesn't have highlighting yet
159if version >= 508 || !exists("did_sql_syn_inits")
160 if version < 508
161 let did_sql_syn_inits = 1
162 command -nargs=+ HiLink hi link <args>
163 else
164 command -nargs=+ HiLink hi def link <args>
165 endif
166
167
168 " === Comment syntax group ===
169 HiLink sqlComment Comment
170
171 " === Constant syntax group ===
172 HiLink sqlNumber Number
173 HiLink sqlBoolean Boolean
174 HiLink sqlString String
175
176 " === Statment syntax group ===
177 HiLink sqlStatement Statement
178 HiLink sqlConditional Conditional
179 HiLink sqlRepeat Repeat
180 HiLink sqlKeyword Keyword
181 HiLink sqlOperator Operator
182 HiLink sqlException Exception
183
184 " === Identifier syntax group ===
185 HiLink sqlFunction Function
186
187 " === Type syntax group ===
188 HiLink sqlType Type
189
190 " === Todo syntax group ===
191 HiLink sqlTodo Todo
192
193 delcommand HiLink
194endif
195
196let b:current_syntax = "sqlinformix"