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