diff options
Diffstat (limited to 'syntax')
| -rw-r--r-- | syntax/elm.vim | 32 | 
1 files changed, 25 insertions, 7 deletions
| diff --git a/syntax/elm.vim b/syntax/elm.vim index 9a7628ae..474f21d0 100644 --- a/syntax/elm.vim +++ b/syntax/elm.vim @@ -1,24 +1,33 @@  if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'elm') == -1 -" syntax highlighting for Elm (http://elm-lang.org/) +" syntax highlighting for Elm (https://elm-lang.org/)  if exists('b:current_syntax')    finish  endif  " Keywords -syn keyword elmConditional else if of then +syn keyword elmConditional else if of then case  syn keyword elmAlias alias  syn keyword elmTypedef contained type port  syn keyword elmImport exposing as import module where  " Operators -syn match elmOperator contained "\([-!#$%`&\*\+./<=>\?@\\^|~:]\|\<_\>\)" +" elm/core +syn match elmOperator contained "\(<|\||>\|||\|&&\|==\|/=\|<=\|>=\|++\|::\|+\|-\|*\|/\|//\|^\|<>\|>>\|<<\|<\|>\|%\)" +" elm/parser +syn match elmOperator contained "\(|.\||=\)" +" elm/url +syn match elmOperator contained "\(</>\|<?>\)"  " Types -syn match elmType "\<[A-Z][0-9A-Za-z_'-]*" +syn match elmType "\<[A-Z][0-9A-Za-z_-]*"  syn keyword elmNumberType number +" Modules +syn match elmModule "\<\([A-Z][0-9A-Za-z_'-\.]*\)\+\.[A-Za-z]"me=e-2 +syn match elmModule "^\(module\|import\)\s\+[A-Z][0-9A-Za-z_'-\.]*\(\s\+as\s\+[A-Z][0-9A-Za-z_'-\.]*\)\?\(\s\+exposing\)\?" contains=elmImport +  " Delimiters  syn match elmDelimiter  "[,;]"  syn match elmBraces  "[()[\]{}]" @@ -38,9 +47,15 @@ syn region elmString start="\"" skip="\\\"" end="\"" contains=elmStringEscape,@s  syn region elmTripleString start="\"\"\"" skip="\\\"" end="\"\"\"" contains=elmStringEscape,@spell  syn match elmChar "'[^'\\]'\|'\\.'\|'\\u[0-9a-fA-F]\{4}'" +" Lambda +syn region elmLambdaFunc start="\\"hs=s+1 end="->"he=e-2 + +" Debug +syn match elmDebug "Debug.\(log\|todo\|toString\)" +  " Numbers -syn match elmInt "-\?\<\d\+\>\|0[xX][0-9a-fA-F]\+\>" -syn match elmFloat "\(\<\d\+\.\d\+\>\)" +syn match elmInt "-\?\<\d\+\>" +syn match elmFloat "-\?\(\<\d\+\.\d\+\>\)"  " Identifiers  syn match elmTopLevelDecl "^\s*[a-zA-Z][a-zA-z0-9_]*\('\)*\s\+:\(\r\n\|\r\|\n\|\s\)\+" contains=elmOperator @@ -75,8 +90,11 @@ 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 elmType Type  hi def link elmNumberType Identifier +hi def link elmLambdaFunc Function +hi def link elmDebug Debug +hi def link elmModule Type  syn sync minlines=500 | 
