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