Skip to content

Instantly share code, notes, and snippets.

@mariuz
Forked from ik5/firebird.vim
Created June 15, 2014 11:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mariuz/c79199564b58340e3781 to your computer and use it in GitHub Desktop.
Save mariuz/c79199564b58340e3781 to your computer and use it in GitHub Desktop.
" Vim syntax file
" Language: SQL
" Maintainer: Scott Morgan < blumf7 at gmail dot com >
" Last Change: 2014-06-13
" Version: 1.0
" 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
" The SQL reserved words, defined as keywords.
setlocal iskeyword+==,<,>,!,~,^,|
syn keyword sqlConst null
syn keyword sqlType bigint blob char character date decimal double float
syn keyword sqlType int integer long numeric smallint sub_type time
syn keyword sqlType timestamp varchar
syn keyword sqlFunction abs acos ascii_char ascii_val asin atan atan2 bin_and
syn keyword sqlFunction bin_not bin_or bin_shl bin_shr bin_xor bit_length cast
syn keyword sqlFunction ceil ceiling char_length char_to_uuid character_length
syn keyword sqlFunction coalesce cos cosh cot dateadd datediff decode exp
syn keyword sqlFunction extract floor gen_id gen_uuid hash iif ln log log10
syn keyword sqlFunction lower lpad maxvalue minvalue mod nullif octet_length
syn keyword sqlFunction overlay pi position power rand rdb$get_context
syn keyword sqlFunction rdb$set_context replace reverse round rpad sign sin
syn keyword sqlFunction sinh sqrt substring tan tanh trim trunc upper
syn keyword sqlFunction uuid_to_char
syn keyword sqlStatement alter as by commit create database delete drop execute
syn keyword sqlStatement first for from group having index inner insert into
syn keyword sqlStatement join left matching merge on order outer right rollback
syn keyword sqlStatement select set shell union update using where with
syn keyword sqlOperator !< ^< ^= ^> , := != !> ( ) < <= <> = > >= "~<" ~= ~> "||"
syn keyword sqlOperator and escape in like not or similar unique values
syn keyword sqlKeyword begin
syn keyword sqlTypeMod default foreign key primary
syn keyword sqlObject domain exception function generator procedure role
syn keyword sqlObject table trigger view
syn keyword sqlFunction avg count list max min sum
" currently unspecified keywords
syn keyword sqlKeyword accent action active add admin after all always any asc
syn keyword sqlKeyword ascending at auto autonomous backup before between
syn keyword sqlKeyword block both break caller cascade case check close
syn keyword sqlKeyword collate collation column comment committed common
syn keyword sqlKeyword computed conditional connect constraint containing
syn keyword sqlKeyword cross cstring current current_connection current_date
syn keyword sqlKeyword current_role current_time current_timestamp
syn keyword sqlKeyword current_transaction current_user cursor data day dec
syn keyword sqlKeyword declare deleting desc descending descriptor difference
syn keyword sqlKeyword disconnect distinct do else end entry_point exists exit
syn keyword sqlKeyword external fetch file filter firstname free_it full
syn keyword sqlKeyword gdscode generated global grant granted hour if ignore
syn keyword sqlKeyword inactive input_type insensitive inserting is isolation
syn keyword sqlKeyword last lastname leading leave length level limbo lock
syn keyword sqlKeyword manual mapping matched maximum_segment middlename
syn keyword sqlKeyword millisecond minute module_name month names national
syn keyword sqlKeyword natural nchar next no nulls of only open option os_name
syn keyword sqlKeyword output_type overflow pad page page_size pages parameter
syn keyword sqlKeyword password placing plan post_event precision preserve
syn keyword sqlKeyword privileges protected rdb$db_key read real
syn keyword sqlKeyword record_version recreate recursive references release
syn keyword sqlKeyword requests reserv reserving restart restrict retain
syn keyword sqlKeyword returning returning_values returns revoke row_count
syn keyword sqlKeyword rows savepoint scalar_array schema second segment
syn keyword sqlKeyword sensitive sequence shadow shared singular size skip
syn keyword sqlKeyword snapshot some sort source space sqlcode sqlstate
syn keyword sqlKeyword stability start starting starts statement statistics
syn keyword sqlKeyword suspend temporary then timeout to trailing transaction
syn keyword sqlKeyword two_phase type uncommitted undo updating user value
syn keyword sqlKeyword variable varying wait week weekday when while work
syn keyword sqlKeyword write year yearday
" Strings and characters:
syn region sqlString start=+"+ skip=+\\\\\|\\"+ end=+"+
syn region sqlString start=+'+ skip=+\\\\\|\\'+ end=+'+
" Numbers:
syn match sqlNumber "-\=\<\d*\.\=[0-9_]\>"
" Comments:
syn region sqlComment start="/\*" end="\*/" contains=sqlTodo
syn match sqlComment "--.*$" contains=sqlTodo
syn sync ccomment sqlComment
" Todo.
syn keyword sqlTodo contained 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
HiLink sqlKeyword sqlSpecial
HiLink sqlOperator sqlStatement
HiLink sqlSpecial Special
HiLink sqlFunction Special
HiLink sqlStatement Statement
HiLink sqlObject Identifier
HiLink sqlType Type
HiLink sqlTypeMod Type
HiLink sqlConst String
HiLink sqlString String
HiLink sqlNumber Number
HiLink sqlComment Comment
HiLink sqlTodo Todo
delcommand HiLink
endif
let b:current_syntax = "sql"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment