Bram Moolenaar | 1056d98 | 2006-03-09 22:37:52 +0000 | [diff] [blame] | 1 | " Vim syntax file |
Bram Moolenaar | d042dc8 | 2015-11-24 19:18:36 +0100 | [diff] [blame] | 2 | " Language: SQL, PL/SQL (Oracle 11g) |
| 3 | " Maintainer: Christian Brabandt |
| 4 | " Repository: https://github.com/chrisbra/vim-sqloracle-syntax |
| 5 | " License: Vim |
| 6 | " Previous Maintainer: Paul Moore |
| 7 | " Last Change: 2015 Nov 24 |
Bram Moolenaar | 1056d98 | 2006-03-09 22:37:52 +0000 | [diff] [blame] | 8 | |
Bram Moolenaar | d042dc8 | 2015-11-24 19:18:36 +0100 | [diff] [blame] | 9 | if exists("b:current_syntax") |
Bram Moolenaar | 1056d98 | 2006-03-09 22:37:52 +0000 | [diff] [blame] | 10 | finish |
| 11 | endif |
| 12 | |
| 13 | syn case ignore |
| 14 | |
| 15 | " The SQL reserved words, defined as keywords. |
| 16 | |
Bram Moolenaar | d042dc8 | 2015-11-24 19:18:36 +0100 | [diff] [blame] | 17 | syn keyword sqlSpecial false null true |
Bram Moolenaar | 1056d98 | 2006-03-09 22:37:52 +0000 | [diff] [blame] | 18 | |
Bram Moolenaar | d042dc8 | 2015-11-24 19:18:36 +0100 | [diff] [blame] | 19 | syn keyword sqlKeyword access add as asc begin by case check cluster column |
| 20 | syn keyword sqlKeyword cache compress connect current cursor decimal default desc |
Bram Moolenaar | 1056d98 | 2006-03-09 22:37:52 +0000 | [diff] [blame] | 21 | syn keyword sqlKeyword else elsif end exception exclusive file for from |
| 22 | syn keyword sqlKeyword function group having identified if immediate increment |
Bram Moolenaar | d042dc8 | 2015-11-24 19:18:36 +0100 | [diff] [blame] | 23 | syn keyword sqlKeyword index initial initrans into is level link logging loop |
| 24 | syn keyword sqlKeyword maxextents maxtrans mode modify monitoring |
| 25 | syn keyword sqlKeyword nocache nocompress nologging noparallel nowait of offline on online start |
| 26 | syn keyword sqlKeyword parallel successful synonym table tablespace then to trigger uid |
Bram Moolenaar | 1056d98 | 2006-03-09 22:37:52 +0000 | [diff] [blame] | 27 | syn keyword sqlKeyword unique user validate values view whenever |
Bram Moolenaar | d042dc8 | 2015-11-24 19:18:36 +0100 | [diff] [blame] | 28 | syn keyword sqlKeyword where with option order pctfree pctused privileges procedure |
Bram Moolenaar | 1056d98 | 2006-03-09 22:37:52 +0000 | [diff] [blame] | 29 | syn keyword sqlKeyword public resource return row rowlabel rownum rows |
| 30 | syn keyword sqlKeyword session share size smallint type using |
| 31 | |
| 32 | syn keyword sqlOperator not and or |
| 33 | syn keyword sqlOperator in any some all between exists |
| 34 | syn keyword sqlOperator like escape |
Bram Moolenaar | d042dc8 | 2015-11-24 19:18:36 +0100 | [diff] [blame] | 35 | syn keyword sqlOperator union intersect minus |
| 36 | syn keyword sqlOperator prior distinct |
Bram Moolenaar | 1056d98 | 2006-03-09 22:37:52 +0000 | [diff] [blame] | 37 | syn keyword sqlOperator sysdate out |
| 38 | |
Bram Moolenaar | d042dc8 | 2015-11-24 19:18:36 +0100 | [diff] [blame] | 39 | syn keyword sqlStatement analyze audit comment commit |
| 40 | syn keyword sqlStatement delete drop execute explain grant lock noaudit |
| 41 | syn keyword sqlStatement rename revoke rollback savepoint set |
| 42 | syn keyword sqlStatement truncate |
| 43 | " next ones are contained, so folding works. |
| 44 | syn keyword sqlStatement create update alter select insert contained |
Bram Moolenaar | 1056d98 | 2006-03-09 22:37:52 +0000 | [diff] [blame] | 45 | |
| 46 | syn keyword sqlType boolean char character date float integer long |
| 47 | syn keyword sqlType mlslabel number raw rowid varchar varchar2 varray |
| 48 | |
Bram Moolenaar | d042dc8 | 2015-11-24 19:18:36 +0100 | [diff] [blame] | 49 | " Strings: |
| 50 | syn region sqlString start=+"+ skip=+\\\\\|\\"+ end=+"+ |
| 51 | syn region sqlString start=+'+ skip=+\\\\\|\\'+ end=+'+ |
Bram Moolenaar | 1056d98 | 2006-03-09 22:37:52 +0000 | [diff] [blame] | 52 | |
| 53 | " Numbers: |
Bram Moolenaar | d042dc8 | 2015-11-24 19:18:36 +0100 | [diff] [blame] | 54 | syn match sqlNumber "-\=\<\d*\.\=[0-9_]\>" |
Bram Moolenaar | 1056d98 | 2006-03-09 22:37:52 +0000 | [diff] [blame] | 55 | |
| 56 | " Comments: |
Bram Moolenaar | d042dc8 | 2015-11-24 19:18:36 +0100 | [diff] [blame] | 57 | syn region sqlComment start="/\*" end="\*/" contains=sqlTodo,@Spell fold |
| 58 | syn match sqlComment "--.*$" contains=sqlTodo,@Spell |
| 59 | |
| 60 | " Setup Folding: |
| 61 | " this is a hack, to get certain statements folded. |
| 62 | " the keywords create/update/alter/select/insert need to |
| 63 | " have contained option. |
| 64 | syn region sqlFold start='^\s*\zs\c\(Create\|Update\|Alter\|Select\|Insert\)' end=';$\|^$' transparent fold contains=ALL |
Bram Moolenaar | 1056d98 | 2006-03-09 22:37:52 +0000 | [diff] [blame] | 65 | |
| 66 | syn sync ccomment sqlComment |
| 67 | |
Bram Moolenaar | d042dc8 | 2015-11-24 19:18:36 +0100 | [diff] [blame] | 68 | " Functions: |
| 69 | " (Oracle 11g) |
| 70 | " Aggregate Functions |
| 71 | syn keyword sqlFunction avg collect corr corr_s corr_k count covar_pop covar_samp cume_dist dense_rank first |
| 72 | syn keyword sqlFunction group_id grouping grouping_id last max median min percentile_cont percentile_disc percent_rank rank |
| 73 | syn keyword sqlFunction regr_slope regr_intercept regr_count regr_r2 regr_avgx regr_avgy regr_sxx regr_syy regr_sxy |
| 74 | syn keyword sqlFunction stats_binomial_test stats_crosstab stats_f_test stats_ks_test stats_mode stats_mw_test |
| 75 | syn keyword sqlFunction stats_one_way_anova stats_t_test_one stats_t_test_paired stats_t_test_indep stats_t_test_indepu |
| 76 | syn keyword sqlFunction stats_wsr_test stddev stddev_pop stddev_samp sum |
| 77 | syn keyword sqlFunction sys_xmlagg var_pop var_samp variance xmlagg |
| 78 | " Char Functions |
| 79 | syn keyword sqlFunction ascii chr concat initcap instr length lower lpad ltrim |
| 80 | syn keyword sqlFunction nls_initcap nls_lower nlssort nls_upper regexp_instr regexp_replace |
| 81 | syn keyword sqlFunction regexp_substr replace rpad rtrim soundex substr translate treat trim upper |
| 82 | " Comparison Functions |
| 83 | syn keyword sqlFunction greatest least |
| 84 | " Conversion Functions |
| 85 | syn keyword sqlFunction asciistr bin_to_num cast chartorowid compose convert |
| 86 | syn keyword sqlFunction decompose hextoraw numtodsinterval numtoyminterval rawtohex rawtonhex rowidtochar |
| 87 | syn keyword sqlFunction rowidtonchar scn_to_timestamp timestamp_to_scn to_binary_double to_binary_float |
| 88 | syn keyword sqlFunction to_char to_char to_char to_clob to_date to_dsinterval to_lob to_multi_byte |
| 89 | syn keyword sqlFunction to_nchar to_nchar to_nchar to_nclob to_number to_dsinterval to_single_byte |
| 90 | syn keyword sqlFunction to_timestamp to_timestamp_tz to_yminterval to_yminterval translate unistr |
| 91 | " DataMining Functions |
| 92 | syn keyword sqlFunction cluster_id cluster_probability cluster_set feature_id feature_set |
| 93 | syn keyword sqlFunction feature_value prediction prediction_bounds prediction_cost |
| 94 | syn keyword sqlFunction prediction_details prediction_probability prediction_set |
| 95 | " Datetime Functions |
| 96 | syn keyword sqlFunction add_months current_date current_timestamp dbtimezone extract |
| 97 | syn keyword sqlFunction from_tz last_day localtimestamp months_between new_time |
| 98 | syn keyword sqlFunction next_day numtodsinterval numtoyminterval round sessiontimezone |
| 99 | syn keyword sqlFunction sys_extract_utc sysdate systimestamp to_char to_timestamp |
| 100 | syn keyword sqlFunction to_timestamp_tz to_dsinterval to_yminterval trunc tz_offset |
| 101 | " Numeric Functions |
| 102 | syn keyword sqlFunction abs acos asin atan atan2 bitand ceil cos cosh exp |
| 103 | syn keyword sqlFunction floor ln log mod nanvl power remainder round sign |
| 104 | syn keyword sqlFunction sin sinh sqrt tan tanh trunc width_bucket |
| 105 | " NLS Functions |
| 106 | syn keyword sqlFunction ls_charset_decl_len nls_charset_id nls_charset_name |
| 107 | " Various Functions |
| 108 | syn keyword sqlFunction bfilename cardin coalesce collect decode dump empty_blob empty_clob |
| 109 | syn keyword sqlFunction lnnvl nullif nvl nvl2 ora_hash powermultiset powermultiset_by_cardinality |
| 110 | syn keyword sqlFunction sys_connect_by_path sys_context sys_guid sys_typeid uid user userenv vsizeality |
| 111 | " XML Functions |
| 112 | syn keyword sqlFunction appendchildxml deletexml depth extract existsnode extractvalue insertchildxml |
| 113 | syn keyword sqlFunction insertxmlbefore path sys_dburigen sys_xmlagg sys_xmlgen updatexml xmlagg xmlcast |
| 114 | syn keyword sqlFunction xmlcdata xmlcolattval xmlcomment xmlconcat xmldiff xmlelement xmlexists xmlforest |
| 115 | syn keyword sqlFunction xmlparse xmlpatch xmlpi xmlquery xmlroot xmlsequence xmlserialize xmltable xmltransform |
| 116 | " Todo: |
| 117 | syn keyword sqlTodo TODO FIXME XXX DEBUG NOTE contained |
Bram Moolenaar | 1056d98 | 2006-03-09 22:37:52 +0000 | [diff] [blame] | 118 | |
| 119 | " Define the default highlighting. |
Bram Moolenaar | d042dc8 | 2015-11-24 19:18:36 +0100 | [diff] [blame] | 120 | command -nargs=+ HiLink hi def link <args> |
| 121 | HiLink sqlComment Comment |
| 122 | HiLink sqlFunction Function |
| 123 | HiLink sqlKeyword sqlSpecial |
| 124 | HiLink sqlNumber Number |
| 125 | HiLink sqlOperator sqlStatement |
| 126 | HiLink sqlSpecial Special |
| 127 | HiLink sqlStatement Statement |
| 128 | HiLink sqlString String |
| 129 | HiLink sqlType Type |
| 130 | HiLink sqlTodo Todo |
Bram Moolenaar | 1056d98 | 2006-03-09 22:37:52 +0000 | [diff] [blame] | 131 | |
Bram Moolenaar | d042dc8 | 2015-11-24 19:18:36 +0100 | [diff] [blame] | 132 | delcommand HiLink |
Bram Moolenaar | 1056d98 | 2006-03-09 22:37:52 +0000 | [diff] [blame] | 133 | let b:current_syntax = "sql" |
Bram Moolenaar | 1056d98 | 2006-03-09 22:37:52 +0000 | [diff] [blame] | 134 | " vim: ts=8 |