diff options
author | Adam Stankiewicz <sheerun@sher.pl> | 2015-12-06 11:53:26 +0100 |
---|---|---|
committer | Adam Stankiewicz <sheerun@sher.pl> | 2015-12-06 11:53:26 +0100 |
commit | 08ea94e01188531e819e5d6bea5c84a773b4eb98 (patch) | |
tree | 595c73c1476e2fdc8458529907efea083a405f68 /syntax | |
parent | ba7a783c7f3d3c923ef151e4d3e99e087831ef69 (diff) | |
download | vim-polyglot-08ea94e01188531e819e5d6bea5c84a773b4eb98.tar.gz vim-polyglot-08ea94e01188531e819e5d6bea5c84a773b4eb98.zip |
Add elm support, closes #81
Diffstat (limited to 'syntax')
-rw-r--r-- | syntax/elm.vim | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/syntax/elm.vim b/syntax/elm.vim new file mode 100644 index 00000000..5825e228 --- /dev/null +++ b/syntax/elm.vim @@ -0,0 +1,81 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'elm') == -1 + +" Vim syntax file +" Language: Elm (http://elm-lang.org/) +" Maintainer: Alexander Noriega +" Latest Revision: 19 April 2015 + +if exists("b:current_syntax") + finish +endif + +" Keywords +syn keyword elmKeyword alias as case else exposing if import in let module of port then type where + +" Builtin operators +syn match elmBuiltinOp "\~" +syn match elmBuiltinOp "||" +syn match elmBuiltinOp "|>" +syn match elmBuiltinOp "|" +syn match elmBuiltinOp "`" +syn match elmBuiltinOp "\^" +syn match elmBuiltinOp "\\" +syn match elmBuiltinOp ">>" +syn match elmBuiltinOp ">=" +syn match elmBuiltinOp ">" +syn match elmBuiltinOp "==" +syn match elmBuiltinOp "=" +syn match elmBuiltinOp "<\~" +syn match elmBuiltinOp "<|" +syn match elmBuiltinOp "<=" +syn match elmBuiltinOp "<<" +syn match elmBuiltinOp "<-" +syn match elmBuiltinOp "<" +syn match elmBuiltinOp "::" +syn match elmBuiltinOp ":" +syn match elmBuiltinOp "/=" +syn match elmBuiltinOp "//" +syn match elmBuiltinOp "/" +syn match elmBuiltinOp "\.\." +syn match elmBuiltinOp "\." +syn match elmBuiltinOp "->" +syn match elmBuiltinOp "-" +syn match elmBuiltinOp "++" +syn match elmBuiltinOp "+" +syn match elmBuiltinOp "*" +syn match elmBuiltinOp "&&" +syn match elmBuiltinOp "%" + +" Special names +syntax match specialName "^main " + +" Comments +syn match elmTodo "[tT][oO][dD][oO]\|FIXME\|XXX" contained +syn match elmLineComment "--.*" contains=elmTodo,@spell +syn region elmComment matchgroup=elmComment start="{-|\=" end="-}" contains=elmTodo,elmComment,@spell + +" String literals +syn region elmString start="\"" skip="\\\"" end="\"" contains=elmStringEscape +syn match elmStringEscape "\\u[0-9a-fA-F]\{4}" contained +syn match elmStringEscape "\\[nrfvbt\\\"]" contained + +" Number literals +syn match elmNumber "\(\<\d\+\>\)" +syn match elmNumber "\(\<\d\+\.\d\+\>\)" + +" Types +syn match elmType "\<[A-Z][0-9A-Za-z_'-]*" + +let b:current_syntax = "elm" + +hi def link elmKeyword Keyword +hi def link elmBuiltinOp Special +hi def link elmType Type +hi def link elmTodo Todo +hi def link elmLineComment Comment +hi def link elmComment Comment +hi def link elmString String +hi def link elmNumber Number +hi def link specialName Special + +endif |