diff options
author | Adam Stankiewicz <sheerun@sher.pl> | 2017-09-27 20:52:13 +0200 |
---|---|---|
committer | Adam Stankiewicz <sheerun@sher.pl> | 2017-09-27 20:52:13 +0200 |
commit | 7673a61990d4062adebbe49f71067b0aad90382a (patch) | |
tree | 06f6a5e83257abb59930153e15e0644b504ac94b /syntax | |
parent | 6a12aa87f41b02a68cd8e6b494e5400367c2b028 (diff) | |
download | vim-polyglot-7673a61990d4062adebbe49f71067b0aad90382a.tar.gz vim-polyglot-7673a61990d4062adebbe49f71067b0aad90382a.zip |
Change elm provider, closes #224
Diffstat (limited to '')
-rw-r--r-- | syntax/elm.vim | 110 |
1 files changed, 51 insertions, 59 deletions
diff --git a/syntax/elm.vim b/syntax/elm.vim index 5825e228..fb3874c0 100644 --- a/syntax/elm.vim +++ b/syntax/elm.vim @@ -1,81 +1,73 @@ 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 +" syntax highlighting for Elm (http://elm-lang.org/) -if exists("b:current_syntax") +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 +syn keyword elmConditional case else if of then +syn keyword elmAlias alias +syn keyword elmTypedef type port let in +syn keyword elmImport exposing as import module 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 "%" +" Operators +syn match elmOperator "\([-!#$%`&\*\+./<=>\?@\\^|~:]\|\<_\>\)" -" Special names -syntax match specialName "^main " +" Types +syn match elmType "\<[A-Z][0-9A-Za-z_'-]*" +syn keyword elmNumberType number + +" Delimiters +syn match elmDelimiter "[,;]" +syn match elmBraces "[()[\]{}]" + +" Functions +syn match elmTupleFunction "\((,\+)\)" " Comments -syn match elmTodo "[tT][oO][dD][oO]\|FIXME\|XXX" contained +syn keyword elmTodo TODO 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 +" Strings syn match elmStringEscape "\\u[0-9a-fA-F]\{4}" contained syn match elmStringEscape "\\[nrfvbt\\\"]" contained +syn region elmString start="\"" skip="\\\"" end="\"" contains=elmStringEscape,@spell +syn region elmTripleString start="\"\"\"" skip="\\\"" end="\"\"\"" contains=elmStringEscape,@spell +syn match elmChar "'[^'\\]'\|'\\.'\|'\\u[0-9a-fA-F]\{4}'" -" Number literals -syn match elmNumber "\(\<\d\+\>\)" -syn match elmNumber "\(\<\d\+\.\d\+\>\)" +" Numbers +syn match elmInt "-\?\<\d\+\>\|0[xX][0-9a-fA-F]\+\>" +syn match elmFloat "\(\<\d\+\.\d\+\>\)" -" Types -syn match elmType "\<[A-Z][0-9A-Za-z_'-]*" +" Identifiers +syn match elmTopLevelDecl "^\s*[a-zA-Z][a-zA-z0-9_]*\('\)*\s\+:\s\+" contains=elmOperator + +hi def link elmTopLevelDecl Function +hi def link elmTupleFunction Normal +hi def link elmTodo Todo +hi def link elmComment Comment +hi def link elmLineComment Comment +hi def link elmString String +hi def link elmTripleString String +hi def link elmChar String +hi def link elmStringEscape Special +hi def link elmInt Number +hi def link elmFloat Float +hi def link elmDelimiter Delimiter +hi def link elmBraces Delimiter +hi def link elmTypedef TypeDef +hi def link elmImport Include +hi def link elmConditional Conditional +hi def link elmAlias Delimiter +hi def link elmOperator Operator +hi def link elmType Identifier +hi def link elmNumberType Identifier -let b:current_syntax = "elm" +syn sync minlines=500 -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 +let b:current_syntax = 'elm' endif |