1" Vim syntax file 2" Language: SQL, PL/SQL (Oracle 8i) 3" Maintainer: Paul Moore <pf_moore AT yahoo.co.uk> 4" Last Change: 2005 Dec 23 5 6" For version 5.x: Clear all syntax items 7" For version 6.x: Quit when a syntax file was already loaded 8if version < 600 9 syntax clear 10elseif exists("b:current_syntax") 11 finish 12endif 13 14syn case ignore 15 16" The SQL reserved words, defined as keywords. 17 18syn keyword sqlSpecial false null true 19 20syn keyword sqlKeyword access add as asc begin by check cluster column 21syn keyword sqlKeyword compress connect current cursor decimal default desc 22syn keyword sqlKeyword else elsif end exception exclusive file for from 23syn keyword sqlKeyword function group having identified if immediate increment 24syn keyword sqlKeyword index initial into is level loop maxextents mode modify 25syn keyword sqlKeyword nocompress nowait of offline on online start 26syn keyword sqlKeyword successful synonym table then to trigger uid 27syn keyword sqlKeyword unique user validate values view whenever 28syn keyword sqlKeyword where with option order pctfree privileges procedure 29syn keyword sqlKeyword public resource return row rowlabel rownum rows 30syn keyword sqlKeyword session share size smallint type using 31 32syn keyword sqlOperator not and or 33syn keyword sqlOperator in any some all between exists 34syn keyword sqlOperator like escape 35syn keyword sqlOperator union intersect minus 36syn keyword sqlOperator prior distinct 37syn keyword sqlOperator sysdate out 38 39syn keyword sqlStatement alter analyze audit comment commit create 40syn keyword sqlStatement delete drop execute explain grant insert lock noaudit 41syn keyword sqlStatement rename revoke rollback savepoint select set 42syn keyword sqlStatement truncate update 43 44syn keyword sqlType boolean char character date float integer long 45syn keyword sqlType mlslabel number raw rowid varchar varchar2 varray 46 47" Strings and characters: 48syn region sqlString start=+"+ skip=+\\\\\|\\"+ end=+"+ 49syn region sqlString start=+'+ skip=+\\\\\|\\'+ end=+'+ 50 51" Numbers: 52syn match sqlNumber "-\=\<\d*\.\=[0-9_]\>" 53 54" Comments: 55syn region sqlComment start="/\*" end="\*/" contains=sqlTodo 56syn match sqlComment "--.*$" contains=sqlTodo 57 58syn sync ccomment sqlComment 59 60" Todo. 61syn keyword sqlTodo contained TODO FIXME XXX DEBUG NOTE 62 63" Define the default highlighting. 64" For version 5.7 and earlier: only when not done already 65" For version 5.8 and later: only when an item doesn't have highlighting yet 66if version >= 508 || !exists("did_sql_syn_inits") 67 if version < 508 68 let did_sql_syn_inits = 1 69 command -nargs=+ HiLink hi link <args> 70 else 71 command -nargs=+ HiLink hi def link <args> 72 endif 73 74 HiLink sqlComment Comment 75 HiLink sqlKeyword sqlSpecial 76 HiLink sqlNumber Number 77 HiLink sqlOperator sqlStatement 78 HiLink sqlSpecial Special 79 HiLink sqlStatement Statement 80 HiLink sqlString String 81 HiLink sqlType Type 82 HiLink sqlTodo Todo 83 84 delcommand HiLink 85endif 86 87let b:current_syntax = "sql" 88 89" vim: ts=8 90