mirror of
https://github.com/neovim/neovim.git
synced 2024-12-29 14:41:06 -07:00
294 lines
11 KiB
VimL
294 lines
11 KiB
VimL
|
" Vim syntax file
|
||
|
" Language: SQL, SAP HANA In Memory Database
|
||
|
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
|
||
|
" Last Change: 2012 Oct 23
|
||
|
" Version: SP4 b (Q2 2012)
|
||
|
" Homepage: http://www.vim.org/scripts/script.php?script_id=4275
|
||
|
|
||
|
" Description: Updated to SAP HANA SP4
|
||
|
"
|
||
|
" For version 5.x: Clear all syntax items
|
||
|
" For version 6.x: Quit when a syntax file was already loaded
|
||
|
if version < 600
|
||
|
syntax clear
|
||
|
elseif exists("b:current_syntax")
|
||
|
finish
|
||
|
endif
|
||
|
|
||
|
syn case ignore
|
||
|
|
||
|
" The SQL reserved words, defined as keywords.
|
||
|
" These were pulled from the following SQL reference:
|
||
|
" http://help.sap.com/hana/hana_sql_en.pdf
|
||
|
" An easy approach is to copy all text from the PDF
|
||
|
" into a Vim buffer. The keywords are in UPPER case,
|
||
|
" so you can run the following commands to be left with
|
||
|
" mainly the UPPER case words:
|
||
|
" 1. Delete all words that do not begin with a Capital
|
||
|
" %s/\(\<[^A-Z]\w*\>\)//g
|
||
|
" 2. Remove all words where the 2nd letter is not a Capital
|
||
|
" %s/\(\<[A-Z][^A-Z]\w*\>\)//g
|
||
|
" 3. Remove all non-word (or space) characters
|
||
|
" %s/[^0-9A-Za-z_ ]*//g
|
||
|
" 4. Remove some known words
|
||
|
" %s/\<\(SAP\|HANA\|OK\|AG\|IBM\|DB2\|AIX\|POWER\d\+\|UNIX\)\>//g
|
||
|
" 5. Remove blank lines and trailing spaces
|
||
|
" %s/\s\+$//g
|
||
|
" %s/^\s\+//g
|
||
|
" %s/^$\n//g
|
||
|
" 6. Convert spaces to newlines remove single character
|
||
|
" %s/[ ]\+/\r/g
|
||
|
" %g/^\w$/d
|
||
|
" 7. Sort and remove duplicates
|
||
|
" :sort
|
||
|
" :Uniq
|
||
|
" 8. Use the WhatsMissing plugin against the sqlhana.vim file.
|
||
|
" 9. Generated a file of all UPPER cased words which should not
|
||
|
" be in the syntax file. These items should be removed
|
||
|
" from the list in step 7. You can use WhatsNotMissing
|
||
|
" between step 7 and this new file to weed out the words
|
||
|
" we know are not syntax related.
|
||
|
" 10. Use the WhatsMissingRemoveMatches to remove the words
|
||
|
" from step 9.
|
||
|
|
||
|
syn keyword sqlSpecial false null true
|
||
|
|
||
|
" Supported Functions for Date/Time types
|
||
|
syn keyword sqlFunction ADD_DAYS ADD_MONTHS ADD_SECONDS ADD_YEARS COALESCE
|
||
|
syn keyword sqlFunction CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_UTCDATE
|
||
|
syn keyword sqlFunction CURRENT_UTCTIME CURRENT_UTCTIMESTAMP
|
||
|
syn keyword sqlFunction DAYNAME DAYOFMONTH DAYOFYEAR DAYS_BETWEEN EXTRACT
|
||
|
syn keyword sqlFunction GREATEST HOUR IFNULL ISOWEEK LAST_DAY LEAST LOCALTOUTC
|
||
|
syn keyword sqlFunction MINUTE MONTH MONTHNAME NEXT_DAY NOW QUARTER SECOND
|
||
|
syn keyword sqlFunction SECONDS_BETWEEN UTCTOLOCAL WEEK WEEKDAY YEAR
|
||
|
|
||
|
syn keyword sqlFunction TO_CHAR TO_DATE TO_DATS TO_NCHAR TO_TIME TO_TIMESTAMP UTCTOLOCAL
|
||
|
|
||
|
" Aggregate
|
||
|
syn keyword sqlFunction COUNT MIN MAX SUM AVG STDDEV VAR
|
||
|
|
||
|
" Datatype conversion
|
||
|
syn keyword sqlFunction CAST TO_ALPHANUM TO_BIGINT TO_BINARY TO_BLOB TO_CHAR TO_CLOB
|
||
|
syn keyword sqlFunction TO_DATE TO_DATS TO_DECIMAL TO_DOUBLE TO_INT TO_INTEGER TO_NCHAR
|
||
|
syn keyword sqlFunction TO_NCLOB TO_NVARCHAR TO_REAL TO_SECONDDATE TO_SMALLDECIMAL
|
||
|
syn keyword sqlFunction TO_SMALLINT TO_TIME TO_TIMESTAMP TO_TINYINT TO_VARCHAR TO_VARBINARY
|
||
|
|
||
|
" Number functions
|
||
|
syn keyword sqlFunction ABS ACOS ASIN ATAN ATAN2 BINTOHEX BITAND CEIL COS COSH COT
|
||
|
syn keyword sqlFunction EXP FLOOR GREATEST HEXTOBIN LEAST LN LOG MOD POWER ROUND
|
||
|
syn keyword sqlFunction SIGN SIN SINH SQRT TAN TANH UMINUS
|
||
|
|
||
|
" String functions
|
||
|
syn keyword sqlFunction ASCII CHAR CONCAT LCASE LENGTH LOCATE LOWER LPAD LTRIM
|
||
|
syn keyword sqlFunction NCHAR REPLACE RPAD RTRIM SUBSTR_AFTER SUBSTR_BEFORE
|
||
|
syn keyword sqlFunction SUBSTRING TRIM UCASE UNICODE UPPER
|
||
|
|
||
|
" Miscellaneous functions
|
||
|
syn keyword sqlFunction COALESCE CURRENT_CONNECTION CURRENT_SCHEMA CURRENT_USER
|
||
|
syn keyword sqlFunction GROUPING_ID IFNULL MAP NULLIF SESSION_CONTEXT SESSION_USER SYSUUIDSQL
|
||
|
syn keyword sqlFunction GET_NUM_SERVERS
|
||
|
|
||
|
|
||
|
" sp_ procedures
|
||
|
" syn keyword sqlFunction sp_addalias
|
||
|
|
||
|
|
||
|
" Reserved keywords
|
||
|
syn keyword sqlkeyword ALL AS AT BEFORE
|
||
|
syn keyword sqlkeyword BEGIN BOTH BY
|
||
|
syn keyword sqlkeyword CONDITION
|
||
|
syn keyword sqlkeyword CURRVAL CURSOR DECLARE
|
||
|
syn keyword sqlkeyword DISTINCT DO ELSE ELSEIF ELSIF
|
||
|
syn keyword sqlkeyword END EXCEPTION EXEC
|
||
|
syn keyword sqlkeyword FOR FROM GROUP
|
||
|
syn keyword sqlkeyword HAVING IN
|
||
|
syn keyword sqlkeyword INOUT INTO IS
|
||
|
syn keyword sqlkeyword LEADING
|
||
|
syn keyword sqlkeyword LOOP MINUS NATURAL NEXTVAL
|
||
|
syn keyword sqlkeyword OF ON ORDER OUT
|
||
|
syn keyword sqlkeyword PRIOR RETURN RETURNS REVERSE
|
||
|
syn keyword sqlkeyword ROWID SELECT
|
||
|
syn keyword sqlkeyword SQL START STOP SYSDATE
|
||
|
syn keyword sqlkeyword SYSTIME SYSTIMESTAMP SYSUUID
|
||
|
syn keyword sqlkeyword TRAILING USING UTCDATE
|
||
|
syn keyword sqlkeyword UTCTIME UTCTIMESTAMP VALUES
|
||
|
syn keyword sqlkeyword WHILE
|
||
|
syn keyword sqlkeyword ANY SOME EXISTS ESCAPE
|
||
|
|
||
|
" IF keywords
|
||
|
syn keyword sqlkeyword IF
|
||
|
|
||
|
" CASE keywords
|
||
|
syn keyword sqlKeyword WHEN THEN
|
||
|
|
||
|
" Syntax rules common to TEXT and SHORTTEXT keywords
|
||
|
syn keyword sqlKeyword LANGUAGE DETECTION LINGUISTIC
|
||
|
syn keyword sqlkeyword MIME TYPE
|
||
|
syn keyword sqlkeyword EXACT WEIGHT FUZZY FUZZINESSTHRESHOLD SEARCH
|
||
|
syn keyword sqlkeyword PHRASE INDEX RATIO REBUILD
|
||
|
syn keyword sqlkeyword CONFIGURATION
|
||
|
syn keyword sqlkeyword SEARCH ONLY
|
||
|
syn keyword sqlkeyword FAST PREPROCESS
|
||
|
syn keyword sqlkeyword SYNC SYNCHRONOUS ASYNC ASYNCHRONOUS FLUSH QUEUE
|
||
|
syn keyword sqlkeyword EVERY AFTER MINUTES DOCUMENTS SUSPEND
|
||
|
|
||
|
" Statement keywords (i.e. after ALTER or CREATE)
|
||
|
syn keyword sqlkeyword AUDIT POLICY
|
||
|
syn keyword sqlkeyword FULLTEXT
|
||
|
syn keyword sqlkeyword SEQUENCE RESTART
|
||
|
syn keyword sqlkeyword TABLE
|
||
|
syn keyword sqlkeyword PROCEDURE STATISTICS
|
||
|
syn keyword sqlkeyword SCHEMA
|
||
|
syn keyword sqlkeyword SYNONYM
|
||
|
syn keyword sqlkeyword VIEW
|
||
|
syn keyword sqlkeyword COLUMN
|
||
|
syn keyword sqlkeyword SYSTEM LICENSE
|
||
|
syn keyword sqlkeyword SESSION
|
||
|
syn keyword sqlkeyword CANCEL WORK
|
||
|
syn keyword sqlkeyword PLAN CACHE
|
||
|
syn keyword sqlkeyword LOGGING NOLOGGING RETENTION
|
||
|
syn keyword sqlkeyword RECONFIGURE SERVICE
|
||
|
syn keyword sqlkeyword RESET MONITORING
|
||
|
syn keyword sqlkeyword SAVE DURATION PERFTRACE FUNCTION_PROFILER
|
||
|
syn keyword sqlkeyword SAVEPOINT
|
||
|
syn keyword sqlkeyword USER
|
||
|
syn keyword sqlkeyword ROLE
|
||
|
syn keyword sqlkeyword ASC DESC
|
||
|
syn keyword sqlkeyword OWNED
|
||
|
syn keyword sqlkeyword DEPENDENCIES SCRAMBLE
|
||
|
|
||
|
" Create sequence
|
||
|
syn keyword sqlkeyword INCREMENT MAXVALUE MINVALUE CYCLE
|
||
|
|
||
|
" Create table
|
||
|
syn keyword sqlkeyword HISTORY GLOBAL LOCAL TEMPORARY
|
||
|
|
||
|
" Create trigger
|
||
|
syn keyword sqlkeyword TRIGGER REFERENCING EACH DEFAULT
|
||
|
syn keyword sqlkeyword SIGNAL RESIGNAL MESSAGE_TEXT OLD NEW
|
||
|
syn keyword sqlkeyword EXIT HANDLER SQL_ERROR_CODE
|
||
|
syn keyword sqlkeyword TARGET CONDITION SIGNAL
|
||
|
|
||
|
" Alter table
|
||
|
syn keyword sqlkeyword ADD DROP MODIFY GENERATED ALWAYS
|
||
|
syn keyword sqlkeyword UNIQUE BTREE CPBTREE PRIMARY KEY
|
||
|
syn keyword sqlkeyword CONSTRAINT PRELOAD NONE
|
||
|
syn keyword sqlkeyword ROW THREADS BATCH
|
||
|
syn keyword sqlkeyword MOVE PARTITION TO LOCATION PHYSICAL OTHERS
|
||
|
syn keyword sqlkeyword ROUNDROBIN PARTITIONS HASH RANGE VALUE
|
||
|
syn keyword sqlkeyword PERSISTENT DELTA AUTO AUTOMERGE
|
||
|
|
||
|
" Create audit policy
|
||
|
syn keyword sqlkeyword AUDITING SUCCESSFUL UNSUCCESSFUL
|
||
|
syn keyword sqlkeyword PRIVILEGE STRUCTURED CHANGE LEVEL
|
||
|
syn keyword sqlkeyword EMERGENCY ALERT CRITICAL WARNING INFO
|
||
|
|
||
|
" Privileges
|
||
|
syn keyword sqlkeyword DEBUG EXECUTE
|
||
|
|
||
|
" Schema
|
||
|
syn keyword sqlkeyword CASCADE RESTRICT PARAMETERS SCAN
|
||
|
|
||
|
" Traces
|
||
|
syn keyword sqlkeyword CLIENT CRASHDUMP EMERGENCYDUMP
|
||
|
syn keyword sqlkeyword INDEXSERVER NAMESERVER DAEMON
|
||
|
syn keyword sqlkeyword CLEAR REMOVE TRACES
|
||
|
|
||
|
" Reclaim
|
||
|
syn keyword sqlkeyword RECLAIM DATA VOLUME VERSION SPACE DEFRAGMENT SPARSIFY
|
||
|
|
||
|
" Join
|
||
|
syn keyword sqlkeyword INNER OUTER LEFT RIGHT FULL CROSS JOIN
|
||
|
syn keyword sqlkeyword GROUPING SETS ROLLUP CUBE
|
||
|
syn keyword sqlkeyword BEST LIMIT OFFSET
|
||
|
syn keyword sqlkeyword WITH SUBTOTAL BALANCE TOTAL
|
||
|
syn keyword sqlkeyword TEXT_FILTER FILL UP SORT MATCHES TOP
|
||
|
syn keyword sqlkeyword RESULT OVERVIEW PREFIX MULTIPLE RESULTSETS
|
||
|
|
||
|
" Lock
|
||
|
syn keyword sqlkeyword EXCLUSIVE MODE NOWAIT
|
||
|
|
||
|
" Transaction
|
||
|
syn keyword sqlkeyword TRANSACTION ISOLATION READ COMMITTED
|
||
|
syn keyword sqlkeyword REPEATABLE SERIALIZABLE WRITE
|
||
|
|
||
|
" Saml
|
||
|
syn keyword sqlkeyword SAML ASSERTION PROVIDER SUBJECT ISSUER
|
||
|
|
||
|
" User
|
||
|
syn keyword sqlkeyword PASSWORD IDENTIFIED EXTERNALLY ATTEMPTS ATTEMPTS
|
||
|
syn keyword sqlkeyword ENABLE DISABLE OFF LIFETIME FORCE DEACTIVATE
|
||
|
syn keyword sqlkeyword ACTIVATE IDENTITY KERBEROS
|
||
|
|
||
|
" Grant
|
||
|
syn keyword sqlkeyword ADMIN BACKUP CATALOG SCENARIO INIFILE MONITOR
|
||
|
syn keyword sqlkeyword OPTIMIZER OPTION
|
||
|
syn keyword sqlkeyword RESOURCE STRUCTUREDPRIVILEGE TRACE
|
||
|
|
||
|
" Import
|
||
|
syn keyword sqlkeyword CSV FILE CONTROL NO CHECK SKIP FIRST LIST
|
||
|
syn keyword sqlkeyword RECORD DELIMITED FIELD OPTIONALLY ENCLOSED FORMAT
|
||
|
|
||
|
" Roles
|
||
|
syn keyword sqlkeyword PUBLIC CONTENT_ADMIN MODELING MONITORING
|
||
|
|
||
|
" Miscellaneous
|
||
|
syn keyword sqlkeyword APPLICATION BINARY IMMEDIATE COREFILE SECURITY DEFINER
|
||
|
syn keyword sqlkeyword DUMMY INVOKER MATERIALIZED MESSEGE_TEXT PARAMETER PARAMETERS
|
||
|
syn keyword sqlkeyword PART
|
||
|
syn keyword sqlkeyword CONSTANT SQLEXCEPTION SQLWARNING
|
||
|
|
||
|
syn keyword sqlOperator WHERE BETWEEN LIKE NULL CONTAINS
|
||
|
syn keyword sqlOperator AND OR NOT CASE
|
||
|
syn keyword sqlOperator UNION INTERSECT EXCEPT
|
||
|
|
||
|
syn keyword sqlStatement ALTER CALL CALLS CREATE DROP RENAME TRUNCATE
|
||
|
syn keyword sqlStatement DELETE INSERT UPDATE EXPLAIN
|
||
|
syn keyword sqlStatement MERGE REPLACE UPSERT SELECT
|
||
|
syn keyword sqlStatement SET UNSET LOAD UNLOAD
|
||
|
syn keyword sqlStatement CONNECT DISCONNECT COMMIT LOCK ROLLBACK
|
||
|
syn keyword sqlStatement GRANT REVOKE
|
||
|
syn keyword sqlStatement EXPORT IMPORT
|
||
|
|
||
|
|
||
|
syn keyword sqlType DATE TIME SECONDDATE TIMESTAMP TINYINT SMALLINT
|
||
|
syn keyword sqlType INT INTEGER BIGINT SMALLDECIMAL DECIMAL
|
||
|
syn keyword sqlType REAL DOUBLE FLOAT
|
||
|
syn keyword sqlType VARCHAR NVARCHAR ALPHANUM SHORTTEXT VARBINARY
|
||
|
syn keyword sqlType BLOB CLOB NCLOB TEXT DAYDATE
|
||
|
|
||
|
syn keyword sqlOption Webservice_namespace_host
|
||
|
|
||
|
" Strings and characters:
|
||
|
syn region sqlString start=+"+ end=+"+ contains=@Spell
|
||
|
syn region sqlString start=+'+ end=+'+ contains=@Spell
|
||
|
|
||
|
" Numbers:
|
||
|
syn match sqlNumber "-\=\<\d*\.\=[0-9_]\>"
|
||
|
|
||
|
" Comments:
|
||
|
syn region sqlDashComment start=/--/ end=/$/ contains=@Spell
|
||
|
syn region sqlSlashComment start=/\/\// end=/$/ contains=@Spell
|
||
|
syn region sqlMultiComment start="/\*" end="\*/" contains=sqlMultiComment,@Spell
|
||
|
syn cluster sqlComment contains=sqlDashComment,sqlSlashComment,sqlMultiComment,@Spell
|
||
|
syn sync ccomment sqlComment
|
||
|
syn sync ccomment sqlDashComment
|
||
|
syn sync ccomment sqlSlashComment
|
||
|
|
||
|
hi def link sqlDashComment Comment
|
||
|
hi def link sqlSlashComment Comment
|
||
|
hi def link sqlMultiComment Comment
|
||
|
hi def link sqlNumber Number
|
||
|
hi def link sqlOperator Operator
|
||
|
hi def link sqlSpecial Special
|
||
|
hi def link sqlKeyword Keyword
|
||
|
hi def link sqlStatement Statement
|
||
|
hi def link sqlString String
|
||
|
hi def link sqlType Type
|
||
|
hi def link sqlFunction Function
|
||
|
hi def link sqlOption PreProc
|
||
|
|
||
|
let b:current_syntax = "sqlhana"
|
||
|
|
||
|
" vim:sw=4:
|