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