summaryrefslogtreecommitdiffstats
path: root/syntax
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2019-06-08 13:33:25 +0200
committerAdam Stankiewicz <sheerun@sher.pl>2019-06-08 13:33:25 +0200
commit9caa678708a97022ba44f0bf86de22b07e9bde86 (patch)
tree0a27834b06ae7894278a752e7875b64d3a09e5dd /syntax
parent8f2a71643a90a8aff03e69ba2b1f8fdb02cebdcf (diff)
downloadvim-polyglot-9caa678708a97022ba44f0bf86de22b07e9bde86.tar.gz
vim-polyglot-9caa678708a97022ba44f0bf86de22b07e9bde86.zip
Add ion shell support, closes #404
Diffstat (limited to 'syntax')
-rw-r--r--syntax/ion.vim87
1 files changed, 87 insertions, 0 deletions
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