diff --git a/README.md b/README.md index 872b59a..2cf9255 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ A collection of language packs for Vim. > One to rule them all, one to find them, one to bring them all and in the darkness bind them. - It **won't affect your startup time**, as scripts are loaded only on demand\*. -- It **installs and updates 120+ times faster** than the 136 packages it consists of. +- It **installs and updates 120+ times faster** than the 137 packages it consists of. - Solid syntax and indentation support (other features skipped). Only the best language packs. - All unnecessary files are ignored (like enormous documentation from php support). - No support for esoteric languages, only most popular ones (modern too, like `slim`). @@ -91,6 +91,7 @@ If you need full functionality of any plugin, please use it directly with your p - [haproxy](https://github.com/CH-DanReif/haproxy.vim) (syntax) - [haskell](https://github.com/neovimhaskell/haskell-vim) (syntax, indent, ftplugin) - [haxe](https://github.com/yaymukund/vim-haxe) (syntax) +- [hive](https://github.com/zebradil/hive.vim) (syntax, ftplugin) - [html5](https://github.com/othree/html5.vim) (syntax, indent, autoload, ftplugin) - [i3](https://github.com/mboughaba/i3config.vim) (syntax, ftplugin) - [idris](https://github.com/idris-hackers/idris-vim) (syntax, indent, ftplugin) diff --git a/build b/build index 576cd77..418c251 100755 --- a/build +++ b/build @@ -199,6 +199,7 @@ PACKS=" haproxy:CH-DanReif/haproxy.vim haskell:neovimhaskell/haskell-vim haxe:yaymukund/vim-haxe + hive:zebradil/hive.vim html5:othree/html5.vim i3:mboughaba/i3config.vim idris:idris-hackers/idris-vim diff --git a/ftdetect/polyglot.vim b/ftdetect/polyglot.vim index 11b4e06..5ff5033 100644 --- a/ftdetect/polyglot.vim +++ b/ftdetect/polyglot.vim @@ -504,6 +504,15 @@ autocmd BufNewFile,BufRead *.hx setf haxe augroup end endif +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'hive') == -1 + augroup filetypedetect + " hive, from hive.vim in zebradil/hive.vim +autocmd BufNewFile,BufRead *.hql set filetype=hive +autocmd BufNewFile,BufRead *.ql set filetype=hive +autocmd BufNewFile,BufRead *.q set filetype=hive + augroup end +endif + if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'i3') == -1 augroup filetypedetect " i3, from i3config.vim in mboughaba/i3config.vim diff --git a/ftplugin/hive.vim b/ftplugin/hive.vim new file mode 100644 index 0000000..70daab7 --- /dev/null +++ b/ftplugin/hive.vim @@ -0,0 +1,6 @@ +if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'hive') != -1 + finish +endif + +setlocal comments=:-- +setlocal commentstring=--\ %s diff --git a/syntax/hive.vim b/syntax/hive.vim new file mode 100644 index 0000000..e858f9f --- /dev/null +++ b/syntax/hive.vim @@ -0,0 +1,139 @@ +if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'hive') != -1 + finish +endif + +" Vim syntax file +" Language: HIVE Query Language +" Maintainer: German Lashevich +" Last Change: 2019-04-30 + +if exists("b:current_syntax") + finish +endif + +syn case ignore + +syn keyword sqlSpecial false null true + +syn keyword sqlKeyword access add as asc begin check cluster column +syn keyword sqlKeyword compress connect current cursor decimal default desc +syn keyword sqlKeyword if else elsif end exception exclusive file for from +syn keyword sqlKeyword function having identified immediate increment +syn keyword sqlKeyword index initial into level loop maxextents mode modify +syn keyword sqlKeyword nocompress nowait of offline on online start +syn keyword sqlKeyword successful synonym table partition then to trigger uid +syn keyword sqlKeyword unique user validate values view whenever hivevar +syn keyword sqlKeyword where with option pctfree privileges procedure limit +syn keyword sqlKeyword public resource return row rowlabel rownum rows +syn keyword sqlKeyword session share size smallint type using cross full outer left join right inner +syn keyword sqlKeyword format delimited fields terminated collection items external window msck repair +syn keyword sqlKeyword stored sequencefile partitioned data local inpath overwrite clustered buckets sorted +syn keyword sqlKeyword keys extended textfile location distribute directory tablesample using reduce lateral +syn keyword sqlKeyword case when database serde serdeproperties inputformat outputformat over +syn keyword sqlKeyword unbounded preceding parquet tblproperties + +syn keyword sqlKeyword dmin after archive before bucket cascade change +syn keyword sqlKeyword lusterstatus columns compact compactions compute +syn keyword sqlKeyword oncatenate continue databases datetime dbproperties +syn keyword sqlKeyword eferred defined dependency directories disable elem_type +syn keyword sqlKeyword nable escaped export fileformat first formatted +syn keyword sqlKeyword unctions hold_ddltime idxproperties ignore indexes +syn keyword sqlKeyword nputdriver jar key_type lines locks logical long mapjoin +syn keyword sqlKeyword aterialized metadata noscan no_drop outputdriver owner +syn keyword sqlKeyword artitions plus pretty principals protection purge read +syn keyword sqlKeyword eadonly rebuild recordreader recordwriter reload replace +syn keyword sqlKeyword eplication restrict rewrite role roles schema schemas +syn keyword sqlKeyword emi server sets shared show show_database skewed sort +syn keyword sqlKeyword sl statistics streamtable tables temporary touch +syn keyword sqlKeyword ransactions unarchive undo uniontype unlock unset +syn keyword sqlKeyword nsigned uri utc utctimestamp value_type while +syn keyword sqlKeyword uthorization both by conf cube current_timestamp +syn keyword sqlKeyword xchange fetch following group grouping import interval +syn keyword sqlKeyword ess macro more none order partialscan percent preserve +syn keyword sqlKeyword ange reads rollup uniquejoin utc_tmestamp autocommit +syn keyword sqlKeyword solation offset snapshot transaction work write only +syn keyword sqlKeyword bort key last norely novalidate nulls rely cache +syn keyword sqlKeyword onstraint foreign primary references detail dow +syn keyword sqlKeyword xpression operator quarter summary vectorization week +syn keyword sqlKeyword ears months weeks days hours minutes seconds dayofweek +syn keyword sqlKeyword xtract integer precision views timestamptz zone time +syn keyword sqlKeyword umeric sync + +syn match sqlKeyword 'group\s\+by' +syn match sqlKeyword 'order\s\+by' + +syn keyword sqlOperator not and or < <= == >= > <> != is +syn keyword sqlOperator in any some all between exists +syn keyword sqlOperator like escape rlike regexp +syn keyword sqlOperator union intersect minus +syn keyword sqlOperator prior distinct isnull count +syn keyword sqlOperator sysdate out +syn keyword sqlOperator round floor ceil rand concat substr upper ucase +syn keyword sqlOperator lower lcase trim ltrim rtrim regexp_replace size +syn keyword sqlOperator coalesce cast from_unixtime to_date year month day get_json_object +syn keyword sqlOperator current_date add_months row_number date_format first_value +syn keyword sqlOperator sum avg min max transform +syn keyword sqlOperator variance var_samp stddev_pop stddev_samp +syn keyword sqlOperator covar_pop covar_samp corr percentile percentil_approx +syn keyword sqlOperator histogram_numeric collect_set inline explode +syn keyword sqlOperator exp ln log10 log2 log pow sqrt bin hex unhex conv +syn keyword sqlOperator abs pmod sin asin cos acos tan atan degrees radians +syn keyword sqlOperator positive negative sign e pi binary +syn keyword sqlOperator map_keys map_values array_contains sort_array +syn keyword sqlOperator unix_timestamp dayofmonth hour minute second weekofyear +syn keyword sqlOperator datediff date_add date_sub from_utc_timestamp to_utc_timestamp +syn keyword sqlOperator ascii context_ngrams concate_ws find_in_set format_number +syn keyword sqlOperator in_file instr length locate lpad ltrim ngrams parse_url +syn keyword sqlOperator printf regexp_extract repeat reverse rpad trim sentences +syn keyword sqlOperator space split str_to_map translate trim java_method reflect +syn keyword sqlOperator xpath xpath_string xpath_boolean xpath_short xpath_int xpath_long xpath_float xpath_double xpath_number + +syn keyword sqlStatement alter analyze audit comment commit create +syn keyword sqlStatement delete drop execute explain grant insert lock noaudit +syn keyword sqlStatement rename revoke rollback savepoint select set +syn keyword sqlStatement truncate update describe load use + +syn keyword sqlType tinyint smallint int bigint float double boolean string +syn keyword sqlType array map struct named_struct create_union timestamp date varchar char + +syn match hiveVar "hive\.[a-zA-Z.]\+" +syn match hiveVar "mapred\.[a-zA-Z.]\+" + +" Strings and characters: +syn region sqlString start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn region sqlString start=+'+ skip=+\\\\\|\\'+ end=+'+ + +" Numbers: +syn match sqlNumber "[-+]\=\d\+[ISL]\=" +" Floating point number with decimal no E or e +syn match sqlNumber '[-+]\=\d\+\.\d\+' +" Floating point like number with E and no decimal point (+,-) +syn match sqlNumber '[-+]\=\d[[:digit:]]*[eE][\-+]\=\d\+' +syn match sqlNumber '\d[[:digit:]]*[eE][\-+]\=\d\+' +" Floating point like number with E and decimal point (+,-) +syn match sqlNumber '[-+]\=\d[[:digit:]]*\.\d*[eE][\-+]\=\d\+' +syn match sqlNumber '\d[[:digit:]]*\.\d*[eE][\-+]\=\d\+' + +" Comments: +syn region sqlComment start="/\*" end="\*/" contains=sqlTodo +syn match sqlComment "--.*$" contains=sqlTodo + +syn sync ccomment sqlComment + +" Todo +syn keyword sqlTodo contained TODO FIXME XXX DEBUG NOTE + +hi link sqlComment Comment +hi link sqlKeyword Identifier +hi link sqlNumber Number +hi link sqlOperator Constant +hi link sqlSpecial Special +hi link sqlStatement Statement +hi link sqlString String +hi link sqlType Type +hi link sqlTodo Todo +hi link hiveVar Special + +let b:current_syntax = "hive" + +" vim: ts=4