blob: 9083b81366fa7b7a3f22c4c25d3afe717c415b5d [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: SQL, PL/SQL (Oracle 8i)
3" Maintainer: Paul Moore <gustav@morpheus.demon.co.uk>
4" Last Change: 2001 Apr 30
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 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