mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 01:34:25 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			291 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			291 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
 | 
						|
"
 | 
						|
" quit when a syntax file was already loaded
 | 
						|
if 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:
 |