diff options
author | Adam Stankiewicz <sheerun@sher.pl> | 2017-02-02 21:16:29 +0100 |
---|---|---|
committer | Adam Stankiewicz <sheerun@sher.pl> | 2017-02-02 21:16:29 +0100 |
commit | e685e4b431ab017d1aec9f9668fbeeeb6e7113e6 (patch) | |
tree | 47137f448d461ebb6852d81c6f553d0843e33764 /syntax/elixir.vim | |
parent | e404a658b1647fad396a954776eda0bdabf8353c (diff) | |
download | vim-polyglot-e685e4b431ab017d1aec9f9668fbeeeb6e7113e6.tar.gz vim-polyglot-e685e4b431ab017d1aec9f9668fbeeeb6e7113e6.zip |
Update
Diffstat (limited to 'syntax/elixir.vim')
-rw-r--r-- | syntax/elixir.vim | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/syntax/elixir.vim b/syntax/elixir.vim index cd24cba6..8fe0bf11 100644 --- a/syntax/elixir.vim +++ b/syntax/elixir.vim @@ -10,7 +10,7 @@ set cpo&vim " syncing starts 2000 lines before top line so docstrings don't screw things up syn sync minlines=2000 -syn cluster elixirNotTop contains=@elixirRegexSpecial,@elixirStringContained,@elixirDeclaration,elixirTodo,elixirArguments,elixirBlockDefinition,elixirUnusedVariable +syn cluster elixirNotTop contains=@elixirRegexSpecial,@elixirStringContained,@elixirDeclaration,elixirTodo,elixirArguments,elixirBlockDefinition,elixirUnusedVariable,elixirStructDelimiter syn cluster elixirRegexSpecial contains=elixirRegexEscape,elixirRegexCharClass,elixirRegexQuantifier,elixirRegexEscapePunctuation syn cluster elixirStringContained contains=elixirInterpolation,elixirRegexEscape,elixirRegexCharClass syn cluster elixirDeclaration contains=elixirFunctionDeclaration,elixirModuleDeclaration,elixirProtocolDeclaration,elixirImplDeclaration,elixirRecordDeclaration,elixirMacroDeclaration,elixirDelegateDeclaration,elixirOverridableDeclaration,elixirExceptionDeclaration,elixirCallbackDeclaration,elixirStructDeclaration @@ -56,7 +56,7 @@ syn match elixirAtom "\%([a-zA-Z_]\w*[?!]\?\):\(:\)\@!" syn match elixirBlockInline "\<\(do\|else\)\>:\@=" -syn match elixirAlias '\<[!]\?[A-Z]\w*\(\.[A-Z]\w*\)*\>' +syn match elixirAlias '\([a-z]\)\@<![A-Z]\w*' syn keyword elixirBoolean true false nil @@ -77,10 +77,17 @@ syn match elixirRegexCharClass "\[:\(alnum\|alpha\|ascii\|blank\|cntrl\| syn region elixirRegex matchgroup=elixirRegexDelimiter start="%r/" end="/[uiomxfr]*" skip="\\\\" contains=@elixirRegexSpecial +syn region elixirTuple matchgroup=elixirTupleDelimiter start="\(\w\|#\)\@<!{" end="}" contains=ALLBUT,@elixirNotTop + +syn match elixirStructDelimiter '{' contained containedin=elixirStruct +syn region elixirStruct matchgroup=elixirStructDelimiter start="%\(\w\+{\)\@=" end="}" contains=ALLBUT,@elixirNotTop + +syn region elixirMap matchgroup=elixirMapDelimiter start="%{" end="}" contains=ALLBUT,@elixirNotTop + syn region elixirString matchgroup=elixirStringDelimiter start=+\z('\)+ end=+\z1+ skip=+\\\\\|\\\z1+ contains=@elixirStringContained syn region elixirString matchgroup=elixirStringDelimiter start=+\z("\)+ end=+\z1+ skip=+\\\\\|\\\z1+ contains=@elixirStringContained -syn region elixirString matchgroup=elixirStringDelimiter start=+\z('''\)+ end=+^\s*\z1+ skip=+'\|\\\\+ contains=@elixirStringContained -syn region elixirString matchgroup=elixirStringDelimiter start=+\z("""\)+ end=+^\s*\z1+ skip=+"\|\\\\+ contains=@elixirStringContained +syn region elixirString matchgroup=elixirStringDelimiter start=+\z('''\)+ end=+^\s*\z1+ contains=@elixirStringContained +syn region elixirString matchgroup=elixirStringDelimiter start=+\z("""\)+ end=+^\s*\z1+ contains=@elixirStringContained syn region elixirInterpolation matchgroup=elixirInterpolationDelimiter start="#{" end="}" contained contains=ALLBUT,elixirKernelFunction,elixirComment,@elixirNotTop syn match elixirAtomInterpolated ':\("\)\@=' contains=elixirString @@ -90,7 +97,7 @@ syn region elixirBlock matchgroup=elixirBlockDefinition start="\<do syn region elixirElseBlock matchgroup=elixirBlockDefinition start="\<else\>:\@!" end="\<end\>" contains=ALLBUT,elixirKernelFunction,@elixirNotTop fold syn region elixirAnonymousFunction matchgroup=elixirBlockDefinition start="\<fn\>" end="\<end\>" contains=ALLBUT,elixirKernelFunction,@elixirNotTop fold -syn region elixirArguments start="(" end=")" contained contains=elixirOperator,elixirAtom,elixirPseudoVariable,elixirAlias,elixirBoolean,elixirVariable,elixirUnusedVariable,elixirNumber,elixirDocString,elixirAtomInterpolated,elixirRegex,elixirString,elixirStringDelimiter,elixirRegexDelimiter,elixirInterpolationDelimiter,elixirSigilDelimiter +syn region elixirArguments start="(" end=")" contained contains=elixirOperator,elixirAtom,elixirPseudoVariable,elixirAlias,elixirBoolean,elixirVariable,elixirUnusedVariable,elixirNumber,elixirDocString,elixirAtomInterpolated,elixirRegex,elixirString,elixirStringDelimiter,elixirRegexDelimiter,elixirInterpolationDelimiter,elixirSigilDelimiter,elixirAnonymousFunction syn match elixirDelimEscape "\\[(<{\[)>}\]/\"'|]" transparent display contained contains=NONE |