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