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 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" 197