xref: /vim-8.2.3635/runtime/syntax/plsql.vim (revision 071d4279)
1*071d4279SBram Moolenaar" Vim syntax file
2*071d4279SBram Moolenaar" Language: Oracle Procedureal SQL (PL/SQL)
3*071d4279SBram Moolenaar" Maintainer: Jeff Lanzarotta (jefflanzarotta at yahoo dot com)
4*071d4279SBram Moolenaar" Original Maintainer: C. Laurence Gonsalves ([email protected])
5*071d4279SBram Moolenaar" URL: http://lanzarotta.tripod.com/vim/syntax/plsql.vim.zip
6*071d4279SBram Moolenaar" Last Change: September 18, 2002
7*071d4279SBram Moolenaar" History: Geoff Evans & Bill Pribyl (bill at plnet dot org)
8*071d4279SBram Moolenaar"		Added 9i keywords.
9*071d4279SBram Moolenaar"	   Austin Ziegler (austin at halostatue dot ca)
10*071d4279SBram Moolenaar"		Added 8i+ features.
11*071d4279SBram Moolenaar"
12*071d4279SBram Moolenaar" For version 5.x, clear all syntax items.
13*071d4279SBram Moolenaar" For version 6.x, quit when a syntax file was already loaded.
14*071d4279SBram Moolenaarif version < 600
15*071d4279SBram Moolenaar  syntax clear
16*071d4279SBram Moolenaarelseif exists("b:current_syntax")
17*071d4279SBram Moolenaar  finish
18*071d4279SBram Moolenaarendif
19*071d4279SBram Moolenaar
20*071d4279SBram Moolenaar" Todo.
21*071d4279SBram Moolenaarsyn keyword plsqlTodo TODO FIXME XXX DEBUG NOTE
22*071d4279SBram Moolenaarsyn cluster plsqlCommentGroup contains=plsqlTodo
23*071d4279SBram Moolenaar
24*071d4279SBram Moolenaarsyn case ignore
25*071d4279SBram Moolenaar
26*071d4279SBram Moolenaarsyn match   plsqlGarbage "[^ \t()]"
27*071d4279SBram Moolenaarsyn match   plsqlIdentifier "[a-z][a-z0-9$_#]*"
28*071d4279SBram Moolenaarsyn match   plsqlHostIdentifier ":[a-z][a-z0-9$_#]*"
29*071d4279SBram Moolenaar
30*071d4279SBram Moolenaar" When wanted, highlight the trailing whitespace.
31*071d4279SBram Moolenaarif exists("c_space_errors")
32*071d4279SBram Moolenaar  if !exists("c_no_trail_space_error")
33*071d4279SBram Moolenaar    syn match plsqlSpaceError "\s\+$"
34*071d4279SBram Moolenaar  endif
35*071d4279SBram Moolenaar
36*071d4279SBram Moolenaar  if !exists("c_no_tab_space_error")
37*071d4279SBram Moolenaar    syn match plsqlSpaceError " \+\t"me=e-1
38*071d4279SBram Moolenaar  endif
39*071d4279SBram Moolenaarendif
40*071d4279SBram Moolenaar
41*071d4279SBram Moolenaar" Symbols.
42*071d4279SBram Moolenaarsyn match   plsqlSymbol "\(;\|,\|\.\)"
43*071d4279SBram Moolenaar
44*071d4279SBram Moolenaar" Operators.
45*071d4279SBram Moolenaarsyn match   plsqlOperator "\(+\|-\|\*\|/\|=\|<\|>\|@\|\*\*\|!=\|\~=\)"
46*071d4279SBram Moolenaarsyn match   plsqlOperator "\(^=\|<=\|>=\|:=\|=>\|\.\.\|||\|<<\|>>\|\"\)"
47*071d4279SBram Moolenaar
48*071d4279SBram Moolenaar" Some of Oracle's SQL keywords.
49*071d4279SBram Moolenaarsyn keyword plsqlSQLKeyword ABORT ACCESS ACCESSED ADD AFTER ALL ALTER AND ANY
50*071d4279SBram Moolenaarsyn keyword plsqlSQLKeyword AS ASC ATTRIBUTE AUDIT AUTHORIZATION AVG BASE_TABLE
51*071d4279SBram Moolenaarsyn keyword plsqlSQLKeyword BEFORE BETWEEN BY CASCADE CAST CHECK CLUSTER
52*071d4279SBram Moolenaarsyn keyword plsqlSQLKeyword CLUSTERS COLAUTH COLUMN COMMENT COMPRESS CONNECT
53*071d4279SBram Moolenaarsyn keyword plsqlSQLKeyword CONSTRAINT CRASH CREATE CURRENT DATA DATABASE
54*071d4279SBram Moolenaarsyn keyword plsqlSQLKeyword DATA_BASE DBA DEFAULT DELAY DELETE DESC DISTINCT
55*071d4279SBram Moolenaarsyn keyword plsqlSQLKeyword DROP DUAL ELSE EXCLUSIVE EXISTS EXTENDS EXTRACT
56*071d4279SBram Moolenaarsyn keyword plsqlSQLKeyword FILE FORCE FOREIGN FROM GRANT GROUP HAVING HEAP
57*071d4279SBram Moolenaarsyn keyword plsqlSQLKeyword IDENTIFIED IDENTIFIER IMMEDIATE IN INCLUDING
58*071d4279SBram Moolenaarsyn keyword plsqlSQLKeyword INCREMENT INDEX INDEXES INITIAL INSERT INSTEAD
59*071d4279SBram Moolenaarsyn keyword plsqlSQLKeyword INTERSECT INTO INVALIDATE IS ISOLATION KEY LIBRARY
60*071d4279SBram Moolenaarsyn keyword plsqlSQLKeyword LIKE LOCK MAXEXTENTS MINUS MODE MODIFY MULTISET
61*071d4279SBram Moolenaarsyn keyword plsqlSQLKeyword NESTED NOAUDIT NOCOMPRESS NOT NOWAIT OF OFF OFFLINE
62*071d4279SBram Moolenaarsyn keyword plsqlSQLKeyword ON ONLINE OPERATOR OPTION OR ORDER ORGANIZATION
63*071d4279SBram Moolenaarsyn keyword plsqlSQLKeyword PCTFREE PRIMARY PRIOR PRIVATE PRIVILEGES PUBLIC
64*071d4279SBram Moolenaarsyn keyword plsqlSQLKeyword QUOTA RELEASE RENAME REPLACE RESOURCE REVOKE ROLLBACK
65*071d4279SBram Moolenaarsyn keyword plsqlSQLKeyword ROW ROWLABEL ROWS SCHEMA SELECT SEPARATE SESSION SET
66*071d4279SBram Moolenaarsyn keyword plsqlSQLKeyword SHARE SIZE SPACE START STORE SUCCESSFUL SYNONYM
67*071d4279SBram Moolenaarsyn keyword plsqlSQLKeyword SYSDATE TABLE TABLES TABLESPACE TEMPORARY TO TREAT
68*071d4279SBram Moolenaarsyn keyword plsqlSQLKeyword TRIGGER TRUNCATE UID UNION UNIQUE UNLIMITED UPDATE
69*071d4279SBram Moolenaarsyn keyword plsqlSQLKeyword USE USER VALIDATE VALUES VIEW WHENEVER WHERE WITH
70*071d4279SBram Moolenaar
71*071d4279SBram Moolenaar" PL/SQL's own keywords.
72*071d4279SBram Moolenaarsyn keyword plsqlKeyword AGENT AND ANY ARRAY ASSIGN AS AT AUTHID BEGIN BODY BY
73*071d4279SBram Moolenaarsyn keyword plsqlKeyword BULK C CASE CHAR_BASE CHARSETFORM CHARSETID CLOSE
74*071d4279SBram Moolenaarsyn keyword plsqlKeyword COLLECT CONSTANT CONSTRUCTOR CONTEXT CURRVAL DECLARE
75*071d4279SBram Moolenaarsyn keyword plsqlKeyword DVOID EXCEPTION EXCEPTION_INIT EXECUTE EXIT FETCH
76*071d4279SBram Moolenaarsyn keyword plsqlKeyword FINAL FUNCTION GOTO HASH IMMEDIATE IN INDICATOR
77*071d4279SBram Moolenaarsyn keyword plsqlKeyword INSTANTIABLE IS JAVA LANGUAGE LIBRARY MAP MAXLEN
78*071d4279SBram Moolenaarsyn keyword plsqlKeyword MEMBER NAME NEW NOCOPY NUMBER_BASE OBJECT OCICOLL
79*071d4279SBram Moolenaarsyn keyword plsqlKeyword OCIDATE OCIDATETIME OCILOBLOCATOR OCINUMBER OCIRAW
80*071d4279SBram Moolenaarsyn keyword plsqlKeyword OCISTRING OF OPAQUE OPEN OR ORDER OTHERS OUT
81*071d4279SBram Moolenaarsyn keyword plsqlKeyword OVERRIDING PACKAGE PARALLEL_ENABLE PARAMETERS
82*071d4279SBram Moolenaarsyn keyword plsqlKeyword PARTITION PIPELINED PRAGMA PROCEDURE RAISE RANGE REF
83*071d4279SBram Moolenaarsyn keyword plsqlKeyword RESULT RETURN REVERSE ROWTYPE SB1 SELF SHORT SIZE_T
84*071d4279SBram Moolenaarsyn keyword plsqlKeyword SQL SQLCODE SQLERRM STATIC STRUCT SUBTYPE TDO THEN
85*071d4279SBram Moolenaarsyn keyword plsqlKeyword TABLE TIMEZONE_ABBR TIMEZONE_HOUR TIMEZONE_MINUTE
86*071d4279SBram Moolenaarsyn keyword plsqlKeyword TIMEZONE_REGION TYPE UNDER UNSIGNED USING VARIANCE
87*071d4279SBram Moolenaarsyn keyword plsqlKeyword VARRAY VARYING WHEN WRITE
88*071d4279SBram Moolenaarsyn match   plsqlKeyword "\<END\>"
89*071d4279SBram Moolenaarsyn match   plsqlKeyword "\.COUNT\>"hs=s+1
90*071d4279SBram Moolenaarsyn match   plsqlKeyword "\.EXISTS\>"hs=s+1
91*071d4279SBram Moolenaarsyn match   plsqlKeyword "\.FIRST\>"hs=s+1
92*071d4279SBram Moolenaarsyn match   plsqlKeyword "\.LAST\>"hs=s+1
93*071d4279SBram Moolenaarsyn match   plsqlKeyword "\.DELETE\>"hs=s+1
94*071d4279SBram Moolenaarsyn match   plsqlKeyword "\.PREV\>"hs=s+1
95*071d4279SBram Moolenaarsyn match   plsqlKeyword "\.NEXT\>"hs=s+1
96*071d4279SBram Moolenaar
97*071d4279SBram Moolenaar" PL/SQL functions.
98*071d4279SBram Moolenaarsyn keyword plsqlFunction ABS ACOS ADD_MONTHS ASCII ASCIISTR ASIN ATAN ATAN2
99*071d4279SBram Moolenaarsyn keyword plsqlFunction BFILENAME BITAND CEIL CHARTOROWID CHR COALESCE
100*071d4279SBram Moolenaarsyn keyword plsqlFunction COMMIT COMMIT_CM COMPOSE CONCAT  CONVERT  COS COSH
101*071d4279SBram Moolenaarsyn keyword plsqlFunction COUNT CUBE CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP
102*071d4279SBram Moolenaarsyn keyword plsqlFunction DBTIMEZONE DECODE DECOMPOSE DEREF DUMP EMPTY_BLOB
103*071d4279SBram Moolenaarsyn keyword plsqlFunction EMPTY_CLOB EXISTS EXP FLOOR FROM_TZ GETBND GLB
104*071d4279SBram Moolenaarsyn keyword plsqlFunction GREATEST GREATEST_LB GROUPING HEXTORAW  INITCAP
105*071d4279SBram Moolenaarsyn keyword plsqlFunction INSTR INSTR2 INSTR4 INSTRB INSTRC ISNCHAR LAST_DAY
106*071d4279SBram Moolenaarsyn keyword plsqlFunction LEAST LEAST_UB LENGTH LENGTH2 LENGTH4 LENGTHB LENGTHC
107*071d4279SBram Moolenaarsyn keyword plsqlFunction LN LOCALTIME LOCALTIMESTAMP LOG LOWER LPAD
108*071d4279SBram Moolenaarsyn keyword plsqlFunction LTRIM LUB MAKE_REF MAX MIN MOD MONTHS_BETWEEN
109*071d4279SBram Moolenaarsyn keyword plsqlFunction NCHARTOROWID NCHR NEW_TIME NEXT_DAY NHEXTORAW
110*071d4279SBram Moolenaarsyn keyword plsqlFunction NLS_CHARSET_DECL_LEN NLS_CHARSET_ID NLS_CHARSET_NAME
111*071d4279SBram Moolenaarsyn keyword plsqlFunction NLS_INITCAP NLS_LOWER NLSSORT NLS_UPPER NULLFN NULLIF
112*071d4279SBram Moolenaarsyn keyword plsqlFunction NUMTODSINTERVAL NUMTOYMINTERVAL NVL POWER
113*071d4279SBram Moolenaarsyn keyword plsqlFunction RAISE_APPLICATION_ERROR RAWTOHEX RAWTONHEX REF
114*071d4279SBram Moolenaarsyn keyword plsqlFunction REFTOHEX REPLACE ROLLBACK_NR ROLLBACK_SV ROLLUP ROUND
115*071d4279SBram Moolenaarsyn keyword plsqlFunction ROWIDTOCHAR ROWIDTONCHAR ROWLABEL RPAD RTRIM
116*071d4279SBram Moolenaarsyn keyword plsqlFunction SAVEPOINT SESSIONTIMEZONE SETBND SET_TRANSACTION_USE
117*071d4279SBram Moolenaarsyn keyword plsqlFunction SIGN SIN SINH SOUNDEX SQLCODE SQLERRM SQRT STDDEV
118*071d4279SBram Moolenaarsyn keyword plsqlFunction SUBSTR SUBSTR2 SUBSTR4 SUBSTRB SUBSTRC SUM
119*071d4279SBram Moolenaarsyn keyword plsqlFunction SYS_AT_TIME_ZONE SYS_CONTEXT SYSDATE SYS_EXTRACT_UTC
120*071d4279SBram Moolenaarsyn keyword plsqlFunction SYS_GUID SYS_LITERALTODATE SYS_LITERALTODSINTERVAL
121*071d4279SBram Moolenaarsyn keyword plsqlFunction SYS_LITERALTOTIME SYS_LITERALTOTIMESTAMP
122*071d4279SBram Moolenaarsyn keyword plsqlFunction SYS_LITERALTOTZTIME SYS_LITERALTOTZTIMESTAMP
123*071d4279SBram Moolenaarsyn keyword plsqlFunction SYS_LITERALTOYMINTERVAL SYS_OVER__DD SYS_OVER__DI
124*071d4279SBram Moolenaarsyn keyword plsqlFunction SYS_OVER__ID SYS_OVER_IID SYS_OVER_IIT
125*071d4279SBram Moolenaarsyn keyword plsqlFunction SYS_OVER__IT SYS_OVER__TI SYS_OVER__TT
126*071d4279SBram Moolenaarsyn keyword plsqlFunction SYSTIMESTAMP TAN TANH TO_ANYLOB TO_BLOB TO_CHAR
127*071d4279SBram Moolenaarsyn keyword plsqlFunction TO_CLOB TO_DATE TO_DSINTERVAL TO_LABEL TO_MULTI_BYTE
128*071d4279SBram Moolenaarsyn keyword plsqlFunction TO_NCHAR TO_NCLOB TO_NUMBER TO_RAW TO_SINGLE_BYTE
129*071d4279SBram Moolenaarsyn keyword plsqlFunction TO_TIME TO_TIMESTAMP TO_TIMESTAMP_TZ TO_TIME_TZ
130*071d4279SBram Moolenaarsyn keyword plsqlFunction TO_YMINTERVAL TRANSLATE TREAT TRIM TRUNC TZ_OFFSET UID
131*071d4279SBram Moolenaarsyn keyword plsqlFunction UNISTR UPPER UROWID USER USERENV VALUE VARIANCE
132*071d4279SBram Moolenaarsyn keyword plsqlFunction VSIZE WORK XOR
133*071d4279SBram Moolenaarsyn match   plsqlFunction "\<SYS\$LOB_REPLICATION\>"
134*071d4279SBram Moolenaar
135*071d4279SBram Moolenaar" PL/SQL Exceptions
136*071d4279SBram Moolenaarsyn keyword plsqlException ACCESS_INTO_NULL CASE_NOT_FOUND COLLECTION_IS_NULL
137*071d4279SBram Moolenaarsyn keyword plsqlException CURSOR_ALREADY_OPEN DUP_VAL_ON_INDEX INVALID_CURSOR
138*071d4279SBram Moolenaarsyn keyword plsqlException INVALID_NUMBER LOGIN_DENIED NO_DATA_FOUND
139*071d4279SBram Moolenaarsyn keyword plsqlException NOT_LOGGED_ON PROGRAM_ERROR ROWTYPE_MISMATCH
140*071d4279SBram Moolenaarsyn keyword plsqlException SELF_IS_NULL STORAGE_ERROR SUBSCRIPT_BEYOND_COUNT
141*071d4279SBram Moolenaarsyn keyword plsqlException SUBSCRIPT_OUTSIDE_LIMIT SYS_INVALID_ROWID
142*071d4279SBram Moolenaarsyn keyword plsqlException TIMEOUT_ON_RESOURCE TOO_MANY_ROWS VALUE_ERROR
143*071d4279SBram Moolenaarsyn keyword plsqlException ZERO_DIVIDE
144*071d4279SBram Moolenaar
145*071d4279SBram Moolenaar" Oracle Pseudo Colums.
146*071d4279SBram Moolenaarsyn keyword plsqlPseudo CURRVAL LEVEL NEXTVAL ROWID ROWNUM
147*071d4279SBram Moolenaar
148*071d4279SBram Moolenaarif exists("plsql_highlight_triggers")
149*071d4279SBram Moolenaar  syn keyword plsqlTrigger INSERTING UPDATING DELETING
150*071d4279SBram Moolenaarendif
151*071d4279SBram Moolenaar
152*071d4279SBram Moolenaar" Conditionals.
153*071d4279SBram Moolenaarsyn keyword plsqlConditional ELSIF ELSE IF
154*071d4279SBram Moolenaarsyn match   plsqlConditional "\<END\s\+IF\>"
155*071d4279SBram Moolenaar
156*071d4279SBram Moolenaar" Loops.
157*071d4279SBram Moolenaarsyn keyword plsqlRepeat FOR LOOP WHILE FORALL
158*071d4279SBram Moolenaarsyn match   plsqlRepeat "\<END\s\+LOOP\>"
159*071d4279SBram Moolenaar
160*071d4279SBram Moolenaar" Various types of comments.
161*071d4279SBram Moolenaarif exists("c_comment_strings")
162*071d4279SBram Moolenaar  syntax match plsqlCommentSkip contained "^\s*\*\($\|\s\+\)"
163*071d4279SBram Moolenaar  syntax region plsqlCommentString contained start=+L\="+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=plsqlCommentSkip
164*071d4279SBram Moolenaar  syntax region plsqlComment2String contained start=+L\="+ skip=+\\\\\|\\"+ end=+"+ end="$"
165*071d4279SBram Moolenaar  syntax region plsqlCommentL start="--" skip="\\$" end="$" keepend contains=@plsqlCommentGroup,plsqlComment2String,plsqlCharLiteral,plsqlBooleanLiteral,plsqlNumbersCom,plsqlSpaceError
166*071d4279SBram Moolenaar  syntax region plsqlComment start="/\*" end="\*/" contains=@plsqlCommentGroup,plsqlComment2String,plsqlCharLiteral,plsqlBooleanLiteral,plsqlNumbersCom,plsqlSpaceError
167*071d4279SBram Moolenaarelse
168*071d4279SBram Moolenaar  syntax region plsqlCommentL start="--" skip="\\$" end="$" keepend contains=@plsqlCommentGroup,plsqlSpaceError
169*071d4279SBram Moolenaar  syntax region plsqlComment start="/\*" end="\*/" contains=@plsqlCommentGroup,plsqlSpaceError
170*071d4279SBram Moolenaarendif
171*071d4279SBram Moolenaar
172*071d4279SBram Moolenaarsyn sync ccomment plsqlComment
173*071d4279SBram Moolenaarsyn sync ccomment plsqlCommentL
174*071d4279SBram Moolenaar
175*071d4279SBram Moolenaar" To catch unterminated string literals.
176*071d4279SBram Moolenaarsyn match   plsqlStringError "'.*$"
177*071d4279SBram Moolenaar
178*071d4279SBram Moolenaar" Various types of literals.
179*071d4279SBram Moolenaarsyn match   plsqlNumbers transparent "\<[+-]\=\d\|[+-]\=\.\d" contains=plsqlIntLiteral,plsqlFloatLiteral
180*071d4279SBram Moolenaarsyn match   plsqlNumbersCom contained transparent "\<[+-]\=\d\|[+-]\=\.\d" contains=plsqlIntLiteral,plsqlFloatLiteral
181*071d4279SBram Moolenaarsyn match   plsqlIntLiteral contained "[+-]\=\d\+"
182*071d4279SBram Moolenaarsyn match   plsqlFloatLiteral contained "[+-]\=\d\+\.\d*"
183*071d4279SBram Moolenaarsyn match   plsqlFloatLiteral contained "[+-]\=\d*\.\d*"
184*071d4279SBram Moolenaarsyn match   plsqlCharLiteral    "'[^']'"
185*071d4279SBram Moolenaarsyn match   plsqlStringLiteral  "'\([^']\|''\)*'"
186*071d4279SBram Moolenaarsyn keyword plsqlBooleanLiteral TRUE FALSE NULL
187*071d4279SBram Moolenaar
188*071d4279SBram Moolenaar" The built-in types.
189*071d4279SBram Moolenaarsyn keyword plsqlStorage ANYDATA ANYTYPE BFILE BINARY_INTEGER BLOB BOOLEAN
190*071d4279SBram Moolenaarsyn keyword plsqlStorage BYTE CHAR CHARACTER CLOB CURSOR DATE DAY DEC DECIMAL
191*071d4279SBram Moolenaarsyn keyword plsqlStorage DOUBLE DSINTERVAL_UNCONSTRAINED FLOAT HOUR
192*071d4279SBram Moolenaarsyn keyword plsqlStorage INT INTEGER INTERVAL LOB LONG MINUTE
193*071d4279SBram Moolenaarsyn keyword plsqlStorage MLSLABEL MONTH NATURAL NATURALN NCHAR NCHAR_CS NCLOB
194*071d4279SBram Moolenaarsyn keyword plsqlStorage NUMBER NUMERIC NVARCHAR PLS_INT PLS_INTEGER
195*071d4279SBram Moolenaarsyn keyword plsqlStorage POSITIVE POSITIVEN PRECISION RAW REAL RECORD
196*071d4279SBram Moolenaarsyn keyword plsqlStorage SECOND SIGNTYPE SMALLINT STRING SYS_REFCURSOR TABLE TIME
197*071d4279SBram Moolenaarsyn keyword plsqlStorage TIMESTAMP TIMESTAMP_UNCONSTRAINED
198*071d4279SBram Moolenaarsyn keyword plsqlStorage TIMESTAMP_TZ_UNCONSTRAINED
199*071d4279SBram Moolenaarsyn keyword plsqlStorage TIMESTAMP_LTZ_UNCONSTRAINED UROWID VARCHAR
200*071d4279SBram Moolenaarsyn keyword plsqlStorage VARCHAR2 YEAR YMINTERVAL_UNCONSTRAINED ZONE
201*071d4279SBram Moolenaar
202*071d4279SBram Moolenaar" A type-attribute is really a type.
203*071d4279SBram Moolenaarsyn match plsqlTypeAttribute  "%\(TYPE\|ROWTYPE\)\>"
204*071d4279SBram Moolenaar
205*071d4279SBram Moolenaar" All other attributes.
206*071d4279SBram Moolenaarsyn match plsqlAttribute "%\(BULK_EXCEPTIONS\|BULK_ROWCOUNT\|ISOPEN\|FOUND\|NOTFOUND\|ROWCOUNT\)\>"
207*071d4279SBram Moolenaar
208*071d4279SBram Moolenaar" This'll catch mis-matched close-parens.
209*071d4279SBram Moolenaarsyn cluster plsqlParenGroup contains=plsqlParenError,@plsqlCommentGroup,plsqlCommentSkip,plsqlIntLiteral,plsqlFloatLiteral,plsqlNumbersCom
210*071d4279SBram Moolenaarif exists("c_no_bracket_error")
211*071d4279SBram Moolenaar  syn region plsqlParen transparent start='(' end=')' contains=ALLBUT,@plsqlParenGroup
212*071d4279SBram Moolenaar  syn match plsqlParenError ")"
213*071d4279SBram Moolenaar  syn match plsqlErrInParen contained "[{}]"
214*071d4279SBram Moolenaarelse
215*071d4279SBram Moolenaar  syn region plsqlParen transparent start='(' end=')' contains=ALLBUT,@plsqlParenGroup,plsqlErrInBracket
216*071d4279SBram Moolenaar  syn match plsqlParenError "[\])]"
217*071d4279SBram Moolenaar  syn match plsqlErrInParen contained "[{}]"
218*071d4279SBram Moolenaar  syn region plsqlBracket transparent start='\[' end=']' contains=ALLBUT,@plsqlParenGroup,plsqlErrInParen
219*071d4279SBram Moolenaar  syn match plsqlErrInBracket contained "[);{}]"
220*071d4279SBram Moolenaarendif
221*071d4279SBram Moolenaar
222*071d4279SBram Moolenaar" Syntax Synchronizing
223*071d4279SBram Moolenaarsyn sync minlines=10 maxlines=100
224*071d4279SBram Moolenaar
225*071d4279SBram Moolenaar" Define the default highlighting.
226*071d4279SBram Moolenaar" For version 5.x and earlier, only when not done already.
227*071d4279SBram Moolenaar" For version 5.8 and later, only when an item doesn't have highlighting yet.
228*071d4279SBram Moolenaarif version >= 508 || !exists("did_plsql_syn_inits")
229*071d4279SBram Moolenaar  if version < 508
230*071d4279SBram Moolenaar    let did_plsql_syn_inits = 1
231*071d4279SBram Moolenaar    command -nargs=+ HiLink hi link <args>
232*071d4279SBram Moolenaar  else
233*071d4279SBram Moolenaar    command -nargs=+ HiLink hi def link <args>
234*071d4279SBram Moolenaar  endif
235*071d4279SBram Moolenaar
236*071d4279SBram Moolenaar  HiLink plsqlAttribute		Macro
237*071d4279SBram Moolenaar  HiLink plsqlBlockError	Error
238*071d4279SBram Moolenaar  HiLink plsqlBooleanLiteral	Boolean
239*071d4279SBram Moolenaar  HiLink plsqlCharLiteral	Character
240*071d4279SBram Moolenaar  HiLink plsqlComment		Comment
241*071d4279SBram Moolenaar  HiLink plsqlCommentL		Comment
242*071d4279SBram Moolenaar  HiLink plsqlConditional	Conditional
243*071d4279SBram Moolenaar  HiLink plsqlError		Error
244*071d4279SBram Moolenaar  HiLink plsqlErrInBracket	Error
245*071d4279SBram Moolenaar  HiLink plsqlErrInBlock	Error
246*071d4279SBram Moolenaar  HiLink plsqlErrInParen	Error
247*071d4279SBram Moolenaar  HiLink plsqlException		Function
248*071d4279SBram Moolenaar  HiLink plsqlFloatLiteral	Float
249*071d4279SBram Moolenaar  HiLink plsqlFunction		Function
250*071d4279SBram Moolenaar  HiLink plsqlGarbage		Error
251*071d4279SBram Moolenaar  HiLink plsqlHostIdentifier	Label
252*071d4279SBram Moolenaar  HiLink plsqlIdentifier	Normal
253*071d4279SBram Moolenaar  HiLink plsqlIntLiteral	Number
254*071d4279SBram Moolenaar  HiLink plsqlOperator		Operator
255*071d4279SBram Moolenaar  HiLink plsqlParen		Normal
256*071d4279SBram Moolenaar  HiLink plsqlParenError	Error
257*071d4279SBram Moolenaar  HiLink plsqlSpaceError	Error
258*071d4279SBram Moolenaar  HiLink plsqlPseudo		PreProc
259*071d4279SBram Moolenaar  HiLink plsqlKeyword		Keyword
260*071d4279SBram Moolenaar  HiLink plsqlRepeat		Repeat
261*071d4279SBram Moolenaar  HiLink plsqlStorage		StorageClass
262*071d4279SBram Moolenaar  HiLink plsqlSQLKeyword	Function
263*071d4279SBram Moolenaar  HiLink plsqlStringError	Error
264*071d4279SBram Moolenaar  HiLink plsqlStringLiteral	String
265*071d4279SBram Moolenaar  HiLink plsqlCommentString	String
266*071d4279SBram Moolenaar  HiLink plsqlComment2String	String
267*071d4279SBram Moolenaar  HiLink plsqlSymbol		Normal
268*071d4279SBram Moolenaar  HiLink plsqlTrigger		Function
269*071d4279SBram Moolenaar  HiLink plsqlTypeAttribute	StorageClass
270*071d4279SBram Moolenaar  HiLink plsqlTodo		Todo
271*071d4279SBram Moolenaar
272*071d4279SBram Moolenaar  delcommand HiLink
273*071d4279SBram Moolenaarendif
274*071d4279SBram Moolenaar
275*071d4279SBram Moolenaarlet b:current_syntax = "plsql"
276*071d4279SBram Moolenaar
277*071d4279SBram Moolenaar" vim: ts=8 sw=2
278