neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

sqlhana.vim (11027B)


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