summaryrefslogtreecommitdiffstats
path: root/syntax
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2019-09-04 16:06:18 +0200
committerAdam Stankiewicz <sheerun@sher.pl>2019-09-04 16:06:18 +0200
commit832dfece7629ac1a6f4894e956802b456ae791ea (patch)
tree2165f0f8cfded20568d3022b0a19bbb25b025434 /syntax
parent933e42ea1f2d615c8ce5aa6daa2994e6369de3cf (diff)
downloadvim-polyglot-832dfece7629ac1a6f4894e956802b456ae791ea.tar.gz
vim-polyglot-832dfece7629ac1a6f4894e956802b456ae791ea.zip
Add dhall, closes #426
Diffstat (limited to 'syntax')
-rw-r--r--syntax/dhall.vim66
1 files changed, 66 insertions, 0 deletions
diff --git a/syntax/dhall.vim b/syntax/dhall.vim
new file mode 100644
index 00000000..8c79b9f0
--- /dev/null
+++ b/syntax/dhall.vim
@@ -0,0 +1,66 @@
+if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'dhall') != -1
+ finish
+endif
+
+scriptencoding utf-8
+
+if exists('b:current_syntax')
+ finish
+endif
+
+syntax match dhallInterpolation "\v\$\{[^\}]*\}"
+syntax keyword dhallTodo TODO FIXME
+syntax match dhallBrackets "[<>|]"
+syntax match dhallOperator "+\|*\|#"
+syntax match dhallOperator "//\|⫽"
+syntax match dhallOperator "/\\\|∧"
+syntax match dhallOperator "//\\\\\|⩓"
+syntax match dhallNumber "\v[0-9]"
+syntax match dhallNumber "\v\+[0-9]"
+syntax match dhallIndex "\v\@[0-9]+" contains=dhallNumber
+syntax match dhallLambda "∀\|λ\|→\|->\|\\"
+syntax match dhallType "\v[A-Z][a-z0-9A-Z_]*"
+syntax match dhallSpecialLabel "\v`[A-Z][a-z]*`"
+syntax match dhallLabel "\v[A-Z][a-z]*/[a-z_][A-Za-z0-9\.\-]*"
+syntax match dhallLabel "\v[a-z_][A-Za-z0-9\-]*"
+syntax match dhallType "\v[a-zA-Z]+\.[A-Z][a-z0-9A-Z_]*"
+syntax match dhallParens "(\|)\|\[\|\]\|,"
+syntax match dhallRecord "{\|}\|:"
+syntax keyword dhallKeyword let in forall constructors if then else merge env as
+syntax match dhallEsc +\\["\\abfnrtv$/]+
+syntax match dhallSingleSpecial +'''+
+syntax match dhallSingleSpecial +''${+
+syntax match dhallComment '\v--.*$' contains=@Spell,dhallTodo
+syntax region dhallMultilineComment start="{-" end="-}" contains=@Spell,dhallTodo,dhallMultilineComment
+syntax match dhallUrl "https://[a-zA-Z0-9/.\-_\?\=\&]*"
+syntax match dhallUrl "http://[a-zA-Z0-9/.\-_\?\=\&]*"
+syntax match dhallUrl "/[a-zA-Z0-9/.\-_]*"
+syntax match dhallUrl "\.\./[a-zA-Z0-9/.\-_]*"
+syntax match dhallUrl "\./[a-zA-Z0-9/.\-_]*"
+syntax region dhallString start=+''+ end=+''+ contains=@Spell,dhallInterpolation,dhallSingleSpecial
+syntax region dhallString start=+"+ end=+"+ contains=dhallInterpolation,dhallEsc
+syntax region dhallString start=+"/+ end=+"+ contains=dhallInterpolation,dhallEsc
+syntax keyword dhallBool True False
+
+highlight link dhallSingleSpecial Special
+highlight link dhallIndex Special
+highlight link dhallSpecialLabel Operator
+highlight link dhallEsc Special
+highlight link dhallInterpolation Special
+highlight link dhallTodo Todo
+highlight link dhallBrackets Operator
+highlight link dhallBool Underlined
+highlight link dhallUrl String
+highlight link dhallOperator Operator
+highlight link dhallNumber Number
+highlight link dhallLambda Special
+highlight link dhallString String
+highlight link dhallLabel Identifier
+highlight link dhallRecord Special
+highlight link dhallKeyword Keyword
+highlight link dhallType Structure
+highlight link dhallParens Special
+highlight link dhallComment Comment
+highlight link dhallMultilineComment Comment
+
+let b:current_syntax = 'dhall'