diff options
author | Adam Stankiewicz <sheerun@sher.pl> | 2019-09-04 16:06:18 +0200 |
---|---|---|
committer | Adam Stankiewicz <sheerun@sher.pl> | 2019-09-04 16:06:18 +0200 |
commit | 832dfece7629ac1a6f4894e956802b456ae791ea (patch) | |
tree | 2165f0f8cfded20568d3022b0a19bbb25b025434 /syntax | |
parent | 933e42ea1f2d615c8ce5aa6daa2994e6369de3cf (diff) | |
download | vim-polyglot-832dfece7629ac1a6f4894e956802b456ae791ea.tar.gz vim-polyglot-832dfece7629ac1a6f4894e956802b456ae791ea.zip |
Add dhall, closes #426
Diffstat (limited to 'syntax')
-rw-r--r-- | syntax/dhall.vim | 66 |
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' |