" 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 <dhill@hotmail.com>
" 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 <args>
else
command -nargs=+ HiLink hi def link <args>
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"
|