comparison runtime/syntax/sqlhana.vim @ 3920:c53344bacabf

Updated runtime files.
author Bram Moolenaar <bram@vim.org>
date Thu, 15 Nov 2012 21:28:22 +0100
parents
children 43efa4f5a8ea
comparison
equal deleted inserted replaced
3919:23fc3dc4317e 3920:c53344bacabf
1 " Vim syntax file
2 " Language: SQL, SAP HANA In Memory Database
3 " Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
4 " Last Change: 2012 Oct 23
5 " Version: SP4 b (Q2 2012)
6 " Homepage: http://www.vim.org/scripts/script.php?script_id=4275
7
8 " Description: Updated to SAP HANA SP4
9 "
10 " For version 5.x: Clear all syntax items
11 " For version 6.x: Quit when a syntax file was already loaded
12 if version < 600
13 syntax clear
14 elseif exists("b:current_syntax")
15 finish
16 endif
17
18 syn case ignore
19
20 " The SQL reserved words, defined as keywords.
21 " These were pulled from the following SQL reference:
22 " http://help.sap.com/hana/hana_sql_en.pdf
23 " An easy approach is to copy all text from the PDF
24 " into a Vim buffer. The keywords are in UPPER case,
25 " so you can run the following commands to be left with
26 " mainly the UPPER case words:
27 " 1. Delete all words that do not begin with a Capital
28 " %s/\(\<[^A-Z]\w*\>\)//g
29 " 2. Remove all words where the 2nd letter is not a Capital
30 " %s/\(\<[A-Z][^A-Z]\w*\>\)//g
31 " 3. Remove all non-word (or space) characters
32 " %s/[^0-9A-Za-z_ ]*//g
33 " 4. Remove some known words
34 " %s/\<\(SAP\|HANA\|OK\|AG\|IBM\|DB2\|AIX\|POWER\d\+\|UNIX\)\>//g
35 " 5. Remove blank lines and trailing spaces
36 " %s/\s\+$//g
37 " %s/^\s\+//g
38 " %s/^$\n//g
39 " 6. Convert spaces to newlines remove single character
40 " %s/[ ]\+/\r/g
41 " %g/^\w$/d
42 " 7. Sort and remove duplicates
43 " :sort
44 " :Uniq
45 " 8. Use the WhatsMissing plugin against the sqlhana.vim file.
46 " 9. Generated a file of all UPPER cased words which should not
47 " be in the syntax file. These items should be removed
48 " from the list in step 7. You can use WhatsNotMissing
49 " between step 7 and this new file to weed out the words
50 " we know are not syntax related.
51 " 10. Use the WhatsMissingRemoveMatches to remove the words
52 " from step 9.
53
54 syn keyword sqlSpecial false null true
55
56 " Supported Functions for Date/Time types
57 syn keyword sqlFunction ADD_DAYS ADD_MONTHS ADD_SECONDS ADD_YEARS COALESCE
58 syn keyword sqlFunction CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_UTCDATE
59 syn keyword sqlFunction CURRENT_UTCTIME CURRENT_UTCTIMESTAMP
60 syn keyword sqlFunction DAYNAME DAYOFMONTH DAYOFYEAR DAYS_BETWEEN EXTRACT
61 syn keyword sqlFunction GREATEST HOUR IFNULL ISOWEEK LAST_DAY LEAST LOCALTOUTC
62 syn keyword sqlFunction MINUTE MONTH MONTHNAME NEXT_DAY NOW QUARTER SECOND
63 syn keyword sqlFunction SECONDS_BETWEEN UTCTOLOCAL WEEK WEEKDAY YEAR
64
65 syn keyword sqlFunction TO_CHAR TO_DATE TO_DATS TO_NCHAR TO_TIME TO_TIMESTAMP UTCTOLOCAL
66
67 " Aggregate
68 syn keyword sqlFunction COUNT MIN MAX SUM AVG STDDEV VAR
69
70 " Datatype conversion
71 syn keyword sqlFunction CAST TO_ALPHANUM TO_BIGINT TO_BINARY TO_BLOB TO_CHAR TO_CLOB
72 syn keyword sqlFunction TO_DATE TO_DATS TO_DECIMAL TO_DOUBLE TO_INT TO_INTEGER TO_NCHAR
73 syn keyword sqlFunction TO_NCLOB TO_NVARCHAR TO_REAL TO_SECONDDATE TO_SMALLDECIMAL
74 syn keyword sqlFunction TO_SMALLINT TO_TIME TO_TIMESTAMP TO_TINYINT TO_VARCHAR TO_VARBINARY
75
76 " Number functions
77 syn keyword sqlFunction ABS ACOS ASIN ATAN ATAN2 BINTOHEX BITAND CEIL COS COSH COT
78 syn keyword sqlFunction EXP FLOOR GREATEST HEXTOBIN LEAST LN LOG MOD POWER ROUND
79 syn keyword sqlFunction SIGN SIN SINH SQRT TAN TANH UMINUS
80
81 " String functions
82 syn keyword sqlFunction ASCII CHAR CONCAT LCASE LENGTH LOCATE LOWER LPAD LTRIM
83 syn keyword sqlFunction NCHAR REPLACE RPAD RTRIM SUBSTR_AFTER SUBSTR_BEFORE
84 syn keyword sqlFunction SUBSTRING TRIM UCASE UNICODE UPPER
85
86 " Miscellaneous functions
87 syn keyword sqlFunction COALESCE CURRENT_CONNECTION CURRENT_SCHEMA CURRENT_USER
88 syn keyword sqlFunction GROUPING_ID IFNULL MAP NULLIF SESSION_CONTEXT SESSION_USER SYSUUIDSQL
89 syn keyword sqlFunction GET_NUM_SERVERS
90
91
92 " sp_ procedures
93 " syn keyword sqlFunction sp_addalias
94
95
96 " Reserved keywords
97 syn keyword sqlkeyword ALL AS AT BEFORE
98 syn keyword sqlkeyword BEGIN BOTH BY
99 syn keyword sqlkeyword CONDITION
100 syn keyword sqlkeyword CURRVAL CURSOR DECLARE
101 syn keyword sqlkeyword DISTINCT DO ELSE ELSEIF ELSIF
102 syn keyword sqlkeyword END EXCEPTION EXEC
103 syn keyword sqlkeyword FOR FROM GROUP
104 syn keyword sqlkeyword HAVING IN
105 syn keyword sqlkeyword INOUT INTO IS
106 syn keyword sqlkeyword LEADING
107 syn keyword sqlkeyword LOOP MINUS NATURAL NEXTVAL
108 syn keyword sqlkeyword OF ON ORDER OUT
109 syn keyword sqlkeyword PRIOR RETURN RETURNS REVERSE
110 syn keyword sqlkeyword ROWID SELECT
111 syn keyword sqlkeyword SQL START STOP SYSDATE
112 syn keyword sqlkeyword SYSTIME SYSTIMESTAMP SYSUUID
113 syn keyword sqlkeyword TRAILING USING UTCDATE
114 syn keyword sqlkeyword UTCTIME UTCTIMESTAMP VALUES
115 syn keyword sqlkeyword WHILE
116 syn keyword sqlkeyword ANY SOME EXISTS ESCAPE
117
118 " IF keywords
119 syn keyword sqlkeyword IF
120
121 " CASE keywords
122 syn keyword sqlKeyword WHEN THEN
123
124 " Syntax rules common to TEXT and SHORTTEXT keywords
125 syn keyword sqlKeyword LANGUAGE DETECTION LINGUISTIC
126 syn keyword sqlkeyword MIME TYPE
127 syn keyword sqlkeyword EXACT WEIGHT FUZZY FUZZINESSTHRESHOLD SEARCH
128 syn keyword sqlkeyword PHRASE INDEX RATIO REBUILD
129 syn keyword sqlkeyword CONFIGURATION
130 syn keyword sqlkeyword SEARCH ONLY
131 syn keyword sqlkeyword FAST PREPROCESS
132 syn keyword sqlkeyword SYNC SYNCHRONOUS ASYNC ASYNCHRONOUS FLUSH QUEUE
133 syn keyword sqlkeyword EVERY AFTER MINUTES DOCUMENTS SUSPEND
134
135 " Statement keywords (i.e. after ALTER or CREATE)
136 syn keyword sqlkeyword AUDIT POLICY
137 syn keyword sqlkeyword FULLTEXT
138 syn keyword sqlkeyword SEQUENCE RESTART
139 syn keyword sqlkeyword TABLE
140 syn keyword sqlkeyword PROCEDURE STATISTICS
141 syn keyword sqlkeyword SCHEMA
142 syn keyword sqlkeyword SYNONYM
143 syn keyword sqlkeyword VIEW
144 syn keyword sqlkeyword COLUMN
145 syn keyword sqlkeyword SYSTEM LICENSE
146 syn keyword sqlkeyword SESSION
147 syn keyword sqlkeyword CANCEL WORK
148 syn keyword sqlkeyword PLAN CACHE
149 syn keyword sqlkeyword LOGGING NOLOGGING RETENTION
150 syn keyword sqlkeyword RECONFIGURE SERVICE
151 syn keyword sqlkeyword RESET MONITORING
152 syn keyword sqlkeyword SAVE DURATION PERFTRACE FUNCTION_PROFILER
153 syn keyword sqlkeyword SAVEPOINT
154 syn keyword sqlkeyword USER
155 syn keyword sqlkeyword ROLE
156 syn keyword sqlkeyword ASC DESC
157 syn keyword sqlkeyword OWNED
158 syn keyword sqlkeyword DEPENDENCIES SCRAMBLE
159
160 " Create sequence
161 syn keyword sqlkeyword INCREMENT MAXVALUE MINVALUE CYCLE
162
163 " Create table
164 syn keyword sqlkeyword HISTORY GLOBAL LOCAL TEMPORARY
165
166 " Create trigger
167 syn keyword sqlkeyword TRIGGER REFERENCING EACH DEFAULT
168 syn keyword sqlkeyword SIGNAL RESIGNAL MESSAGE_TEXT OLD NEW
169 syn keyword sqlkeyword EXIT HANDLER SQL_ERROR_CODE
170 syn keyword sqlkeyword TARGET CONDITION SIGNAL
171
172 " Alter table
173 syn keyword sqlkeyword ADD DROP MODIFY GENERATED ALWAYS
174 syn keyword sqlkeyword UNIQUE BTREE CPBTREE PRIMARY KEY
175 syn keyword sqlkeyword CONSTRAINT PRELOAD NONE
176 syn keyword sqlkeyword ROW THREADS BATCH
177 syn keyword sqlkeyword MOVE PARTITION TO LOCATION PHYSICAL OTHERS
178 syn keyword sqlkeyword ROUNDROBIN PARTITIONS HASH RANGE VALUE
179 syn keyword sqlkeyword PERSISTENT DELTA AUTO AUTOMERGE
180
181 " Create audit policy
182 syn keyword sqlkeyword AUDITING SUCCESSFUL UNSUCCESSFUL
183 syn keyword sqlkeyword PRIVILEGE STRUCTURED CHANGE LEVEL
184 syn keyword sqlkeyword EMERGENCY ALERT CRITICAL WARNING INFO
185
186 " Privileges
187 syn keyword sqlkeyword DEBUG EXECUTE
188
189 " Schema
190 syn keyword sqlkeyword CASCADE RESTRICT PARAMETERS SCAN
191
192 " Traces
193 syn keyword sqlkeyword CLIENT CRASHDUMP EMERGENCYDUMP
194 syn keyword sqlkeyword INDEXSERVER NAMESERVER DAEMON
195 syn keyword sqlkeyword CLEAR REMOVE TRACES
196
197 " Reclaim
198 syn keyword sqlkeyword RECLAIM DATA VOLUME VERSION SPACE DEFRAGMENT SPARSIFY
199
200 " Join
201 syn keyword sqlkeyword INNER OUTER LEFT RIGHT FULL CROSS JOIN
202 syn keyword sqlkeyword GROUPING SETS ROLLUP CUBE
203 syn keyword sqlkeyword BEST LIMIT OFFSET
204 syn keyword sqlkeyword WITH SUBTOTAL BALANCE TOTAL
205 syn keyword sqlkeyword TEXT_FILTER FILL UP SORT MATCHES TOP
206 syn keyword sqlkeyword RESULT OVERVIEW PREFIX MULTIPLE RESULTSETS
207
208 " Lock
209 syn keyword sqlkeyword EXCLUSIVE MODE NOWAIT
210
211 " Transaction
212 syn keyword sqlkeyword TRANSACTION ISOLATION READ COMMITTED
213 syn keyword sqlkeyword REPEATABLE SERIALIZABLE WRITE
214
215 " Saml
216 syn keyword sqlkeyword SAML ASSERTION PROVIDER SUBJECT ISSUER
217
218 " User
219 syn keyword sqlkeyword PASSWORD IDENTIFIED EXTERNALLY ATTEMPTS ATTEMPTS
220 syn keyword sqlkeyword ENABLE DISABLE OFF LIFETIME FORCE DEACTIVATE
221 syn keyword sqlkeyword ACTIVATE IDENTITY KERBEROS
222
223 " Grant
224 syn keyword sqlkeyword ADMIN BACKUP CATALOG SCENARIO INIFILE MONITOR
225 syn keyword sqlkeyword OPTIMIZER OPTION
226 syn keyword sqlkeyword RESOURCE STRUCTUREDPRIVILEGE TRACE
227
228 " Import
229 syn keyword sqlkeyword CSV FILE CONTROL NO CHECK SKIP FIRST LIST
230 syn keyword sqlkeyword RECORD DELIMITED FIELD OPTIONALLY ENCLOSED FORMAT
231
232 " Roles
233 syn keyword sqlkeyword PUBLIC CONTENT_ADMIN MODELING MONITORING
234
235 " Miscellaneous
236 syn keyword sqlkeyword APPLICATION BINARY IMMEDIATE COREFILE SECURITY DEFINER
237 syn keyword sqlkeyword DUMMY INVOKER MATERIALIZED MESSEGE_TEXT PARAMETER PARAMETERS
238 syn keyword sqlkeyword PART
239 syn keyword sqlkeyword CONSTANT SQLEXCEPTION SQLWARNING
240
241 syn keyword sqlOperator WHERE BETWEEN LIKE NULL CONTAINS
242 syn keyword sqlOperator AND OR NOT CASE
243 syn keyword sqlOperator UNION INTERSECT EXCEPT
244
245 syn keyword sqlStatement ALTER CALL CALLS CREATE DROP RENAME TRUNCATE
246 syn keyword sqlStatement DELETE INSERT UPDATE EXPLAIN
247 syn keyword sqlStatement MERGE REPLACE UPSERT SELECT
248 syn keyword sqlStatement SET UNSET LOAD UNLOAD
249 syn keyword sqlStatement CONNECT DISCONNECT COMMIT LOCK ROLLBACK
250 syn keyword sqlStatement GRANT REVOKE
251 syn keyword sqlStatement EXPORT IMPORT
252
253
254 syn keyword sqlType DATE TIME SECONDDATE TIMESTAMP TINYINT SMALLINT
255 syn keyword sqlType INT INTEGER BIGINT SMALLDECIMAL DECIMAL
256 syn keyword sqlType REAL DOUBLE FLOAT
257 syn keyword sqlType VARCHAR NVARCHAR ALPHANUM SHORTTEXT VARBINARY
258 syn keyword sqlType BLOB CLOB NCLOB TEXT DAYDATE
259
260 syn keyword sqlOption Webservice_namespace_host
261
262 " Strings and characters:
263 syn region sqlString start=+"+ end=+"+ contains=@Spell
264 syn region sqlString start=+'+ end=+'+ contains=@Spell
265
266 " Numbers:
267 syn match sqlNumber "-\=\<\d*\.\=[0-9_]\>"
268
269 " Comments:
270 syn region sqlDashComment start=/--/ end=/$/ contains=@Spell
271 syn region sqlSlashComment start=/\/\// end=/$/ contains=@Spell
272 syn region sqlMultiComment start="/\*" end="\*/" contains=sqlMultiComment,@Spell
273 syn cluster sqlComment contains=sqlDashComment,sqlSlashComment,sqlMultiComment,@Spell
274 syn sync ccomment sqlComment
275 syn sync ccomment sqlDashComment
276 syn sync ccomment sqlSlashComment
277
278 hi def link sqlDashComment Comment
279 hi def link sqlSlashComment Comment
280 hi def link sqlMultiComment Comment
281 hi def link sqlNumber Number
282 hi def link sqlOperator Operator
283 hi def link sqlSpecial Special
284 hi def link sqlKeyword Keyword
285 hi def link sqlStatement Statement
286 hi def link sqlString String
287 hi def link sqlType Type
288 hi def link sqlFunction Function
289 hi def link sqlOption PreProc
290
291 let b:current_syntax = "sqlhana"
292
293 " vim:sw=4: