" Vim syntax file " Informix Structured Query Language (SQL) and Stored Procedure Language (SPL) " Language: SQL, SPL (Informix Dynamic Server 2000 v9.2) " Maintainer: Dean Hill " Last Change: 2004 Aug 30 " For version 5.x: Clear all syntax items " For version 6.x: Quit when a syntax file was already loaded if version < 600 syntax clear elseif exists("b:current_syntax") finish endif syn case ignore " === Comment syntax group === syn region sqlComment start="{" end="}" contains=sqlTodo syn match sqlComment "--.*$" contains=sqlTodo syn sync ccomment sqlComment " === Constant syntax group === " = Boolean subgroup = syn keyword sqlBoolean true false syn keyword sqlBoolean null syn keyword sqlBoolean public user syn keyword sqlBoolean current today syn keyword sqlBoolean year month day hour minute second fraction " = String subgroup = syn region sqlString start=+"+ end=+"+ syn region sqlString start=+'+ end=+'+ " = Numbers subgroup = syn match sqlNumber "-\=\<\d*\.\=[0-9_]\>" " === Statement syntax group === " SQL syn keyword sqlStatement allocate alter syn keyword sqlStatement begin syn keyword sqlStatement close commit connect create syn keyword sqlStatement database deallocate declare delete describe disconnect drop syn keyword sqlStatement execute fetch flush free get grant info insert syn keyword sqlStatement load lock open output syn keyword sqlStatement prepare put syn keyword sqlStatement rename revoke rollback select set start stop syn keyword sqlStatement truncate unload unlock update syn keyword sqlStatement whenever " SPL syn keyword sqlStatement call continue define syn keyword sqlStatement exit syn keyword sqlStatement let syn keyword sqlStatement return system trace " = Conditional subgroup = " SPL syn keyword sqlConditional elif else if then syn keyword sqlConditional case " Highlight "end if" with one or more separating spaces syn match sqlConditional "end \+if" " = Repeat subgroup = " SQL/SPL " Handle SQL triggers' "for each row" clause and SPL "for" loop syn match sqlRepeat "for\( \+each \+row\)\=" " SPL syn keyword sqlRepeat foreach while " Highlight "end for", etc. with one or more separating spaces syn match sqlRepeat "end \+for" syn match sqlRepeat "end \+foreach" syn match sqlRepeat "end \+while" " = Exception subgroup = " SPL syn match sqlException "on \+exception" syn match sqlException "end \+exception" syn match sqlException "end \+exception \+with \+resume" syn match sqlException "raise \+exception" " = Keyword subgroup = " SQL syn keyword sqlKeyword aggregate add as authorization autofree by syn keyword sqlKeyword cache cascade check cluster collation syn keyword sqlKeyword column connection constraint cross syn keyword sqlKeyword dataskip debug default deferred_prepare syn keyword sqlKeyword descriptor diagnostics syn keyword sqlKeyword each escape explain external syn keyword sqlKeyword file foreign fragment from function syn keyword sqlKeyword group having syn keyword sqlKeyword immediate index inner into isolation syn keyword sqlKeyword join key syn keyword sqlKeyword left level log syn keyword sqlKeyword mode modify mounting new no syn keyword sqlKeyword object of old optical option syn keyword sqlKeyword optimization order outer syn keyword sqlKeyword pdqpriority pload primary procedure syn keyword sqlKeyword references referencing release reserve syn keyword sqlKeyword residency right role routine row syn keyword sqlKeyword schedule schema scratch session set syn keyword sqlKeyword statement statistics synonym syn keyword sqlKeyword table temp temporary timeout to transaction trigger syn keyword sqlKeyword using values view violations syn keyword sqlKeyword where with work " Highlight "on" (if it's not followed by some words we've already handled) syn match sqlKeyword "on \+\(exception\)\@!" " SPL " Highlight "end" (if it's not followed by some words we've already handled) syn match sqlKeyword "end \+\(if\|for\|foreach\|while\|exception\)\@!" syn keyword sqlKeyword resume returning " = Operator subgroup = " SQL syn keyword sqlOperator not and or syn keyword sqlOperator in is any some all between exists syn keyword sqlOperator like matches syn keyword sqlOperator union intersect syn keyword sqlOperator distinct unique " === Identifier syntax group === " = Function subgroup = " SQL syn keyword sqlFunction abs acos asin atan atan2 avg syn keyword sqlFunction cardinality cast char_length character_length cos count syn keyword sqlFunction exp filetoblob filetoclob hex syn keyword sqlFunction initcap length logn log10 lower lpad syn keyword sqlFunction min max mod octet_length pow range replace root round rpad syn keyword sqlFunction sin sqrt stdev substr substring sum syn keyword sqlFunction to_char tan to_date trim trunc upper variance " === Type syntax group === " SQL syn keyword sqlType blob boolean byte char character clob syn keyword sqlType date datetime dec decimal double syn keyword sqlType float int int8 integer interval list lvarchar syn keyword sqlType money multiset nchar numeric nvarchar syn keyword sqlType real serial serial8 smallfloat smallint syn keyword sqlType text varchar varying " === Todo syntax group === syn keyword sqlTodo TODO FIXME XXX DEBUG NOTE " Define the default highlighting. " For version 5.7 and earlier: only when not done already " For version 5.8 and later: only when an item doesn't have highlighting yet if version >= 508 || !exists("did_sql_syn_inits") if version < 508 let did_sql_syn_inits = 1 command -nargs=+ HiLink hi link else command -nargs=+ HiLink hi def link endif " === Comment syntax group === HiLink sqlComment Comment " === Constant syntax group === HiLink sqlNumber Number HiLink sqlBoolean Boolean HiLink sqlString String " === Statment syntax group === HiLink sqlStatement Statement HiLink sqlConditional Conditional HiLink sqlRepeat Repeat HiLink sqlKeyword Keyword HiLink sqlOperator Operator HiLink sqlException Exception " === Identifier syntax group === HiLink sqlFunction Function " === Type syntax group === HiLink sqlType Type " === Todo syntax group === HiLink sqlTodo Todo delcommand HiLink endif let b:current_syntax = "sqlinformix"