summaryrefslogtreecommitdiffstats
path: root/syntax/fish.vim
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2017-12-06 13:17:06 +0100
committerAdam Stankiewicz <sheerun@sher.pl>2017-12-06 13:17:06 +0100
commit11f53253ad9fd0cd3e7a44ed9f8c80a4f265b46e (patch)
tree08649366f6babad66db065b341691cfac02c2c4a /syntax/fish.vim
parent9fe009095afdb86f6f771109ac454ccfc5340f31 (diff)
downloadvim-polyglot-3.2.0.tar.gz
vim-polyglot-3.2.0.zip
Add slime syntax, closes #252v3.2.0
Diffstat (limited to 'syntax/fish.vim')
-rw-r--r--syntax/fish.vim41
1 files changed, 41 insertions, 0 deletions
diff --git a/syntax/fish.vim b/syntax/fish.vim
new file mode 100644
index 00000000..f198dbaa
--- /dev/null
+++ b/syntax/fish.vim
@@ -0,0 +1,41 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'fish') == -1
+
+if exists('b:current_syntax')
+ finish
+endif
+
+syntax case match
+
+syntax keyword fishKeyword begin function end
+syntax keyword fishConditional if else switch
+syntax keyword fishRepeat while for in
+syntax keyword fishLabel case
+
+syntax match fishComment /#.*/
+syntax match fishSpecial /\\$/
+syntax match fishIdentifier /\$[[:alnum:]_]\+/
+syntax region fishString start=/'/ skip=/\\'/ end=/'/
+syntax region fishString start=/"/ skip=/\\"/ end=/"/ contains=fishIdentifier
+syntax match fishCharacter /\v\\[abefnrtv *?~%#(){}\[\]<>&;"']|\\[xX][0-9a-f]{1,2}|\\o[0-7]{1,2}|\\u[0-9a-f]{1,4}|\\U[0-9a-f]{1,8}|\\c[a-z]/
+syntax match fishStatement /\v;\s*\zs\k+>/
+syntax match fishCommandSub /\v\(\s*\zs\k+>/
+
+syntax region fishLineContinuation matchgroup=fishStatement
+ \ start='\v^\s*\zs\k+>' skip='\\$' end='$'
+ \ contains=fishSpecial,fishIdentifier,fishString,fishCharacter,fishStatement,fishCommandSub,fishComment
+
+highlight default link fishKeyword Keyword
+highlight default link fishConditional Conditional
+highlight default link fishRepeat Repeat
+highlight default link fishLabel Label
+highlight default link fishComment Comment
+highlight default link fishSpecial Special
+highlight default link fishIdentifier Identifier
+highlight default link fishString String
+highlight default link fishCharacter Character
+highlight default link fishStatement Statement
+highlight default link fishCommandSub fishStatement
+
+let b:current_syntax = 'fish'
+
+endif