summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md3
-rwxr-xr-xbuild1
-rw-r--r--ftdetect/polyglot.vim13
-rw-r--r--ftplugin/ion.vim9
-rw-r--r--syntax/ion.vim87
5 files changed, 112 insertions, 1 deletions
diff --git a/README.md b/README.md
index aeb2adf6..978491e7 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-->139<!--/Package Count--> packages it consists of.
+- It **installs and updates 120+ times faster** than the <!--Package Count-->140<!--/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`).
@@ -97,6 +97,7 @@ If you need full functionality of any plugin, please use it directly with your p
- [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)
+- [ion](https://github.com/vmchale/ion-vim) (syntax, ftplugin)
- [jasmine](https://github.com/glanotte/vim-jasmine) (syntax)
- [javascript](https://github.com/pangloss/vim-javascript) (syntax, indent, compiler, ftplugin, extras)
- [jenkins](https://github.com/martinda/Jenkinsfile-vim-syntax) (syntax, indent)
diff --git a/build b/build
index a382dae7..6b3dec30 100755
--- a/build
+++ b/build
@@ -205,6 +205,7 @@ PACKS="
html5:othree/html5.vim
i3:mboughaba/i3config.vim
idris:idris-hackers/idris-vim
+ ion:vmchale/ion-vim
jasmine:glanotte/vim-jasmine
javascript:pangloss/vim-javascript:_JAVASCRIPT
jenkins:martinda/Jenkinsfile-vim-syntax
diff --git a/ftdetect/polyglot.vim b/ftdetect/polyglot.vim
index afefe4e2..48c6e61e 100644
--- a/ftdetect/polyglot.vim
+++ b/ftdetect/polyglot.vim
@@ -586,6 +586,19 @@ au BufNewFile,BufRead *.lidr setf lidris
augroup end
endif
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ion') == -1
+ augroup filetypedetect
+ " ion, from ion.vim in vmchale/ion-vim
+autocmd BufNewFile,BufRead ~/.config/ion/initrc set filetype=ion
+autocmd BufNewFile,BufRead *.ion set filetype=ion
+
+autocmd BufNewFile,BufRead,StdinReadPost *
+ \ if getline(1) =~ '^#!.*\Wion\s*$' |
+ \ set ft=ion |
+ \ endif
+ augroup end
+endif
+
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jasmine') == -1
augroup filetypedetect
" jasmine, from jasmine.vim in glanotte/vim-jasmine
diff --git a/ftplugin/ion.vim b/ftplugin/ion.vim
new file mode 100644
index 00000000..7cb349b9
--- /dev/null
+++ b/ftplugin/ion.vim
@@ -0,0 +1,9 @@
+if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'ion') != -1
+ finish
+endif
+
+
+if exists("b:did_ftplugin") | finish | endif
+let b:did_ftplugin = 1
+
+setlocal commentstring=#%s
diff --git a/syntax/ion.vim b/syntax/ion.vim
new file mode 100644
index 00000000..1a55663a
--- /dev/null
+++ b/syntax/ion.vim
@@ -0,0 +1,87 @@
+if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'ion') != -1
+ finish
+endif
+
+if v:version < 600
+ syntax clear
+elseif exists('b:current_syntax')
+ finish
+endif
+
+syn region ionDoubleQuote start='"' skip='\'' end='"' contains=ionArrayVar,ionVariable,ionProcess
+syn region ionSingleQuote start='\'' skip='"' end='\''
+syn region ionArrayVar start="@{" end="}"
+syn match ionArrayVar "@[a-zA-Z0-9_]\+"
+syn region ionVariable start="${" end="}"
+syn match ionVariable "$[a-zA-Z0-9_]\+"
+syn region ionProcess start="$(" end=")" transparent
+syn region ionProcess start="@(" end=")" transparent
+syn match ionNumber '[+-]\?\([0-9]*[.]\)\?[0-9]\+'
+syn match ionComment '[#].*$'
+syn match ionOperator '&'
+syn match ionOperator '&&'
+syn match ionOperator '||'
+syn match ionOperator '[|<>&]'
+syn match ionFlag '[ ]\([-]\)\w\+'
+
+syntax keyword ionKeyword .
+syntax keyword ionKeyword ..
+syntax keyword ionKeyword alias
+syntax keyword ionKeyword and
+syntax keyword ionKeyword bg
+syntax keyword ionKeyword break
+syntax keyword ionKeyword calc
+syntax keyword ionKeyword case
+syntax keyword ionKeyword cd
+syntax keyword ionKeyword complete
+syntax keyword ionKeyword continue
+syntax keyword ionKeyword count
+syntax keyword ionKeyword dirs
+syntax keyword ionKeyword disown
+syntax keyword ionKeyword drop
+syntax keyword ionKeyword echo
+syntax keyword ionKeyword else
+syntax keyword ionKeyword end
+syntax keyword ionKeyword eval
+syntax keyword ionKeyword exec
+syntax keyword ionKeyword exit
+syntax keyword ionKeyword false
+syntax keyword ionKeyword fg
+syntax keyword ionKeyword fn
+syntax keyword ionKeyword for
+syntax keyword ionKeyword help
+syntax keyword ionKeyword history
+syntax keyword ionKeyword if
+syntax keyword ionKeyword in
+syntax keyword ionKeyword jobs
+syntax keyword ionKeyword let
+syntax keyword ionKeyword match
+syntax keyword ionKeyword matches
+syntax keyword ionKeyword mkdir
+syntax keyword ionKeyword not
+syntax keyword ionKeyword or
+syntax keyword ionKeyword popd
+syntax keyword ionKeyword pushd
+syntax keyword ionKeyword pwd
+syntax keyword ionKeyword read
+syntax keyword ionKeyword set
+syntax keyword ionKeyword source
+syntax keyword ionKeyword status
+syntax keyword ionKeyword suspend
+syntax keyword ionKeyword test
+syntax keyword ionKeyword time
+syntax keyword ionKeyword true
+syntax keyword ionKeyword unalias
+syntax keyword ionKeyword wait
+syntax keyword ionKeyword while
+
+hi def link ionKeyword Keyword
+hi def link ionArrayVar Constant
+hi def link ionVariable Identifier
+hi def link ionNumber Number
+hi def link ionDoubleQuote String
+hi def link ionSingleQuote String
+hi def link ionProcess PreProc
+hi def link ionComment Comment
+hi def link ionOperator Operator
+hi def link ionFlag Boolean