123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- " Vim syntax file
- " Language: SQL, PL/SQL (Oracle 11g)
- " Maintainer: Christian Brabandt
- " Repository: https://github.com/chrisbra/vim-sqloracle-syntax
- " License: Vim
- " Previous Maintainer: Paul Moore
- " Last Change: 2018 June 24
- " Changes:
- " 02.04.2016: Support for when keyword
- " 03.04.2016: Support for join related keywords
- " 22.07.2016: Support Oracle Q-Quote-Syntax
- " 25.07.2016: Support for Oracle N'-Quote syntax
- " 22.06.2018: Remove skip part for sqlString (do not escape strings)
- " (https://web.archive.org/web/20150922065035/https://mariadb.com/kb/en/sql-99/character-string-literals/)
- if exists("b:current_syntax")
- finish
- endif
- syn case ignore
- " The SQL reserved words, defined as keywords.
- syn keyword sqlSpecial false null true
- syn keyword sqlKeyword access add as asc begin by case check cluster column
- syn keyword sqlKeyword cache compress connect current cursor decimal default desc
- syn keyword sqlKeyword else elsif end exception exclusive file for from
- syn keyword sqlKeyword function group having identified if immediate increment
- syn keyword sqlKeyword index initial initrans into is level link logging loop
- syn keyword sqlKeyword maxextents maxtrans mode modify monitoring
- syn keyword sqlKeyword nocache nocompress nologging noparallel nowait of offline on online start
- syn keyword sqlKeyword parallel successful synonym table tablespace then to trigger uid
- syn keyword sqlKeyword unique user validate values view when whenever
- syn keyword sqlKeyword where with option order pctfree pctused privileges procedure
- syn keyword sqlKeyword public resource return row rowlabel rownum rows
- syn keyword sqlKeyword session share size smallint type using
- syn keyword sqlKeyword join cross inner outer left right
- syn keyword sqlOperator not and or
- syn keyword sqlOperator in any some all between exists
- syn keyword sqlOperator like escape
- syn keyword sqlOperator union intersect minus
- syn keyword sqlOperator prior distinct
- syn keyword sqlOperator sysdate out
- syn keyword sqlStatement analyze audit comment commit
- syn keyword sqlStatement delete drop execute explain grant lock noaudit
- syn keyword sqlStatement rename revoke rollback savepoint set
- syn keyword sqlStatement truncate
- " next ones are contained, so folding works.
- syn keyword sqlStatement create update alter select insert contained
- syn keyword sqlType bfile blob boolean char character clob date datetime
- syn keyword sqlType dec decimal float int integer long mlslabel nchar
- syn keyword sqlType nclob number numeric nvarchar2 precision raw rowid
- syn keyword sqlType smallint real timestamp urowid varchar varchar2 varray
- " Strings:
- syn region sqlString matchgroup=Quote start=+n\?"+ end=+"+
- syn region sqlString matchgroup=Quote start=+n\?'+ end=+'+
- syn region sqlString matchgroup=Quote start=+n\?q'\z([^[(<{]\)+ end=+\z1'+
- syn region sqlString matchgroup=Quote start=+n\?q'<+ end=+>'+
- syn region sqlString matchgroup=Quote start=+n\?q'{+ end=+}'+
- syn region sqlString matchgroup=Quote start=+n\?q'(+ end=+)'+
- syn region sqlString matchgroup=Quote start=+n\?q'\[+ end=+]'+
- " Numbers:
- syn match sqlNumber "-\=\<\d*\.\=[0-9_]\>"
- " Comments:
- syn region sqlComment start="/\*" end="\*/" contains=sqlTodo,@Spell fold
- syn match sqlComment "--.*$" contains=sqlTodo,@Spell
- syn match sqlComment "^rem.*$" contains=sqlTodo,@Spell
- " Setup Folding:
- " this is a hack, to get certain statements folded.
- " the keywords create/update/alter/select/insert need to
- " have contained option.
- syn region sqlFold start='^\s*\zs\c\(Create\|Update\|Alter\|Select\|Insert\)' end=';$\|^$' transparent fold contains=ALL
- syn sync ccomment sqlComment
- " Functions:
- " (Oracle 11g)
- " Aggregate Functions
- syn keyword sqlFunction avg collect corr corr_s corr_k count covar_pop covar_samp cume_dist dense_rank first
- syn keyword sqlFunction group_id grouping grouping_id last max median min percentile_cont percentile_disc percent_rank rank
- syn keyword sqlFunction regr_slope regr_intercept regr_count regr_r2 regr_avgx regr_avgy regr_sxx regr_syy regr_sxy
- syn keyword sqlFunction stats_binomial_test stats_crosstab stats_f_test stats_ks_test stats_mode stats_mw_test
- syn keyword sqlFunction stats_one_way_anova stats_t_test_one stats_t_test_paired stats_t_test_indep stats_t_test_indepu
- syn keyword sqlFunction stats_wsr_test stddev stddev_pop stddev_samp sum
- syn keyword sqlFunction sys_xmlagg var_pop var_samp variance xmlagg
- " Char Functions
- syn keyword sqlFunction ascii chr concat initcap instr length lower lpad ltrim
- syn keyword sqlFunction nls_initcap nls_lower nlssort nls_upper regexp_instr regexp_replace
- syn keyword sqlFunction regexp_substr replace rpad rtrim soundex substr translate treat trim upper
- " Comparison Functions
- syn keyword sqlFunction greatest least
- " Conversion Functions
- syn keyword sqlFunction asciistr bin_to_num cast chartorowid compose convert
- syn keyword sqlFunction decompose hextoraw numtodsinterval numtoyminterval rawtohex rawtonhex rowidtochar
- syn keyword sqlFunction rowidtonchar scn_to_timestamp timestamp_to_scn to_binary_double to_binary_float
- syn keyword sqlFunction to_char to_char to_char to_clob to_date to_dsinterval to_lob to_multi_byte
- syn keyword sqlFunction to_nchar to_nchar to_nchar to_nclob to_number to_dsinterval to_single_byte
- syn keyword sqlFunction to_timestamp to_timestamp_tz to_yminterval to_yminterval translate unistr
- " DataMining Functions
- syn keyword sqlFunction cluster_id cluster_probability cluster_set feature_id feature_set
- syn keyword sqlFunction feature_value prediction prediction_bounds prediction_cost
- syn keyword sqlFunction prediction_details prediction_probability prediction_set
- " Datetime Functions
- syn keyword sqlFunction add_months current_date current_timestamp dbtimezone extract
- syn keyword sqlFunction from_tz last_day localtimestamp months_between new_time
- syn keyword sqlFunction next_day numtodsinterval numtoyminterval round sessiontimezone
- syn keyword sqlFunction sys_extract_utc sysdate systimestamp to_char to_timestamp
- syn keyword sqlFunction to_timestamp_tz to_dsinterval to_yminterval trunc tz_offset
- " Numeric Functions
- syn keyword sqlFunction abs acos asin atan atan2 bitand ceil cos cosh exp
- syn keyword sqlFunction floor ln log mod nanvl power remainder round sign
- syn keyword sqlFunction sin sinh sqrt tan tanh trunc width_bucket
- " NLS Functions
- syn keyword sqlFunction ls_charset_decl_len nls_charset_id nls_charset_name
- " Various Functions
- syn keyword sqlFunction bfilename cardin coalesce collect decode dump empty_blob empty_clob
- syn keyword sqlFunction lnnvl nullif nvl nvl2 ora_hash powermultiset powermultiset_by_cardinality
- syn keyword sqlFunction sys_connect_by_path sys_context sys_guid sys_typeid uid user userenv vsizeality
- " XML Functions
- syn keyword sqlFunction appendchildxml deletexml depth extract existsnode extractvalue insertchildxml
- syn keyword sqlFunction insertxmlbefore path sys_dburigen sys_xmlagg sys_xmlgen updatexml xmlagg xmlcast
- syn keyword sqlFunction xmlcdata xmlcolattval xmlcomment xmlconcat xmldiff xmlelement xmlexists xmlforest
- syn keyword sqlFunction xmlparse xmlpatch xmlpi xmlquery xmlroot xmlsequence xmlserialize xmltable xmltransform
- " Todo:
- syn keyword sqlTodo TODO FIXME XXX DEBUG NOTE contained
- " Define the default highlighting.
- hi def link Quote Special
- hi def link sqlComment Comment
- hi def link sqlFunction Function
- hi def link sqlKeyword sqlSpecial
- hi def link sqlNumber Number
- hi def link sqlOperator sqlStatement
- hi def link sqlSpecial Special
- hi def link sqlStatement Statement
- hi def link sqlString String
- hi def link sqlType Type
- hi def link sqlTodo Todo
- let b:current_syntax = "sql"
- " vim: ts=8
|