summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2019-06-08 12:50:29 +0200
committerAdam Stankiewicz <sheerun@sher.pl>2019-06-08 12:50:29 +0200
commit5023da62ecb8a008a9dc67b29516ac707f07f3a0 (patch)
treec1388595537bacf9798a7d7f6180d55bbbec6022
parent957228cc25960601577f490ccfb8aec0a28751ee (diff)
downloadvim-polyglot-5023da62ecb8a008a9dc67b29516ac707f07f3a0.tar.gz
vim-polyglot-5023da62ecb8a008a9dc67b29516ac707f07f3a0.zip
Add hive syntax, closes #396
-rw-r--r--README.md3
-rwxr-xr-xbuild1
-rw-r--r--ftdetect/polyglot.vim9
-rw-r--r--ftplugin/hive.vim6
-rw-r--r--syntax/hive.vim139
5 files changed, 157 insertions, 1 deletions
diff --git a/README.md b/README.md
index 872b59af..2cf92555 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 <!--Package Count-->136<!--/Package Count--> packages it consists of.
+- It **installs and updates 120+ times faster** than the <!--Package Count-->137<!--/Package Count--> 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 576cd770..418c251c 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 11b4e060..5ff50332 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 00000000..70daab7d
--- /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 00000000..e858f9fd
--- /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 <german.lashevich@gmail.com>
+" 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