@@ -11,7 +11,7 @@ syn sync minlines=2000
1111syn  cluster  elixirNotTop  contains =@elixirRegexSpecial,@elixirStringContained,@elixirDeclaration,elixirTodo,elixirArguments,elixirBlockDefinition,elixirUnusedVariable,elixirStructDelimiter 
1212syn  cluster  elixirRegexSpecial  contains =elixirRegexEscape,elixirRegexCharClass,elixirRegexQuantifier,elixirRegexEscapePunctuation 
1313syn  cluster  elixirStringContained  contains =elixirInterpolation,elixirRegexEscape,elixirRegexCharClass 
14- syn  cluster  elixirDeclaration  contains =elixirFunctionDeclaration,elixirModuleDeclaration,elixirProtocolDeclaration,elixirImplDeclaration,elixirRecordDeclaration,elixirMacroDeclaration,elixirDelegateDeclaration,elixirOverridableDeclaration,elixirExceptionDeclaration,elixirCallbackDeclaration,elixirStructDeclaration 
14+ syn  cluster  elixirDeclaration  contains =elixirFunctionDeclaration,elixirPrivateFunctionDeclaration, elixirModuleDeclaration,elixirProtocolDeclaration,elixirImplDeclaration,elixirRecordDeclaration,elixirPrivateRecordDeclaration, elixirMacroDeclaration,elixirPrivateMacroDeclaration ,elixirDelegateDeclaration,elixirOverridableDeclaration,elixirExceptionDeclaration,elixirCallbackDeclaration,elixirStructDeclaration 
1515
1616syn  match  elixirComment  ' #.*'  contains =elixirTodo,@Spell 
1717syn  keyword  elixirTodo  FIXME NOTE TODO OPTIMIZE XXX HACK contained  
@@ -128,91 +128,97 @@ syn region elixirDocString matchgroup=elixirSigilDelimiter  start=+\%(@\w*doc\s\
128128syn  region  elixirDocString  matchgroup =elixirSigilDelimiter   start =+ \% (@\w *doc\s\+\)\@ <=\~ [Ss]\z ("""\) +   end =+ \z 1+   skip =+ \\ "+   contains =@elixirDocStringContained  fold  keepend 
129129
130130"  Defines
131- syn  match  elixirDefine               ' \< def\>\( :\)\@ !'              nextgroup =elixirFunctionDeclaration     skipwhite  skipnl 
132- syn  match  elixirPrivateDefine        ' \< defp\>\( :\)\@ !'             nextgroup =elixirFunctionDeclaration      skipwhite  skipnl 
133- syn  match  elixirGuard                ' \< defguard\>\( :\)\@ !'         nextgroup =elixirFunctionDeclaration     skipwhite  skipnl 
134- syn  match  elixirPrivateGuard         ' \< defguardp\>\( :\)\@ !'        nextgroup =elixirFunctionDeclaration      skipwhite  skipnl 
135- syn  match  elixirModuleDefine         ' \< defmodule\>\( :\)\@ !'        nextgroup =elixirModuleDeclaration       skipwhite  skipnl 
136- syn  match  elixirProtocolDefine       ' \< defprotocol\>\( :\)\@ !'      nextgroup =elixirProtocolDeclaration     skipwhite  skipnl 
137- syn  match  elixirImplDefine           ' \< defimpl\>\( :\)\@ !'          nextgroup =elixirImplDeclaration         skipwhite  skipnl 
138- syn  match  elixirRecordDefine         ' \< defrecord\>\( :\)\@ !'        nextgroup =elixirRecordDeclaration       skipwhite  skipnl 
139- syn  match  elixirPrivateRecordDefine  ' \< defrecordp\>\( :\)\@ !'       nextgroup =elixirRecordDeclaration        skipwhite  skipnl 
140- syn  match  elixirMacroDefine          ' \< defmacro\>\( :\)\@ !'         nextgroup =elixirMacroDeclaration        skipwhite  skipnl 
141- syn  match  elixirPrivateMacroDefine   ' \< defmacrop\>\( :\)\@ !'        nextgroup =elixirMacroDeclaration         skipwhite  skipnl 
142- syn  match  elixirDelegateDefine       ' \< defdelegate\>\( :\)\@ !'      nextgroup =elixirDelegateDeclaration     skipwhite  skipnl 
143- syn  match  elixirOverridableDefine    ' \< defoverridable\>\( :\)\@ !'   nextgroup =elixirOverridableDeclaration  skipwhite  skipnl 
144- syn  match  elixirExceptionDefine      ' \< defexception\>\( :\)\@ !'     nextgroup =elixirExceptionDeclaration    skipwhite  skipnl 
145- syn  match  elixirCallbackDefine       ' \< defcallback\>\( :\)\@ !'      nextgroup =elixirCallbackDeclaration     skipwhite  skipnl 
131+ syn  match  elixirDefine               ' \< def\>\( :\)\@ !'              nextgroup =elixirFunctionDeclaration          skipwhite  skipnl 
132+ syn  match  elixirPrivateDefine        ' \< defp\>\( :\)\@ !'             nextgroup =elixirPrivateFunctionDeclaration  skipwhite  skipnl 
133+ syn  match  elixirGuard                ' \< defguard\>\( :\)\@ !'         nextgroup =elixirFunctionDeclaration          skipwhite  skipnl 
134+ syn  match  elixirPrivateGuard         ' \< defguardp\>\( :\)\@ !'        nextgroup =elixirPrivateFunctionDeclaration  skipwhite  skipnl 
135+ syn  match  elixirModuleDefine         ' \< defmodule\>\( :\)\@ !'        nextgroup =elixirModuleDeclaration            skipwhite  skipnl 
136+ syn  match  elixirProtocolDefine       ' \< defprotocol\>\( :\)\@ !'      nextgroup =elixirProtocolDeclaration          skipwhite  skipnl 
137+ syn  match  elixirImplDefine           ' \< defimpl\>\( :\)\@ !'          nextgroup =elixirImplDeclaration              skipwhite  skipnl 
138+ syn  match  elixirRecordDefine         ' \< defrecord\>\( :\)\@ !'        nextgroup =elixirRecordDeclaration            skipwhite  skipnl 
139+ syn  match  elixirPrivateRecordDefine  ' \< defrecordp\>\( :\)\@ !'       nextgroup =elixirPrivateRecordDeclaration    skipwhite  skipnl 
140+ syn  match  elixirMacroDefine          ' \< defmacro\>\( :\)\@ !'         nextgroup =elixirMacroDeclaration             skipwhite  skipnl 
141+ syn  match  elixirPrivateMacroDefine   ' \< defmacrop\>\( :\)\@ !'        nextgroup =elixirPrivateMacroDeclaration     skipwhite  skipnl 
142+ syn  match  elixirDelegateDefine       ' \< defdelegate\>\( :\)\@ !'      nextgroup =elixirDelegateDeclaration          skipwhite  skipnl 
143+ syn  match  elixirOverridableDefine    ' \< defoverridable\>\( :\)\@ !'   nextgroup =elixirOverridableDeclaration       skipwhite  skipnl 
144+ syn  match  elixirExceptionDefine      ' \< defexception\>\( :\)\@ !'     nextgroup =elixirExceptionDeclaration         skipwhite  skipnl 
145+ syn  match  elixirCallbackDefine       ' \< defcallback\>\( :\)\@ !'      nextgroup =elixirCallbackDeclaration          skipwhite  skipnl 
146146syn  match  elixirStructDefine         ' \< defstruct\>\( :\)\@ !'        skipwhite  skipnl 
147147
148148"  Declarations
149- syn  match   elixirModuleDeclaration       " [^[:space:];#<]\+ "         contained                       nextgroup =elixirBlock      skipwhite  skipnl 
150- syn  match   elixirFunctionDeclaration     " [^[:space:];#<,()\[\] ]\+ "  contained                       nextgroup =elixirArguments  skipwhite  skipnl 
151- syn  match   elixirProtocolDeclaration     " [^[:space:];#<]\+ "         contained  contains =elixirAlias                            skipwhite  skipnl 
152- syn  match   elixirImplDeclaration         " [^[:space:];#<]\+ "         contained  contains =elixirAlias                            skipwhite  skipnl 
153- syn  match   elixirRecordDeclaration       " [^[:space:];#<]\+ "         contained  contains =elixirAlias,elixirAtom                 skipwhite  skipnl 
154- syn  match   elixirMacroDeclaration        " [^[:space:];#<,()\[\] ]\+ "  contained                       nextgroup =elixirArguments  skipwhite  skipnl 
155- syn  match   elixirDelegateDeclaration     " [^[:space:];#<,()\[\] ]\+ "  contained  contains =elixirFunctionDeclaration              skipwhite  skipnl 
156- syn  region  elixirDelegateDeclaration     start =' \[ '       end =' \] '      contained  contains =elixirFunctionDeclaration              skipwhite  skipnl 
157- syn  match   elixirOverridableDeclaration  " [^[:space:];#<]\+ "         contained  contains =elixirAlias,elixirAtom                 skipwhite  skipnl 
158- syn  match   elixirExceptionDeclaration    " [^[:space:];#<]\+ "         contained  contains =elixirAlias,elixirAtom                 skipwhite  skipnl 
159- syn  match   elixirCallbackDeclaration     " [^[:space:];#<,()\[\] ]\+ "  contained  contains =elixirFunctionDeclaration              skipwhite  skipnl 
149+ syn  match   elixirModuleDeclaration           " [^[:space:];#<]\+ "         contained                       nextgroup =elixirBlock      skipwhite  skipnl 
150+ syn  match   elixirFunctionDeclaration         " [^[:space:];#<,()\[\] ]\+ "  contained                       nextgroup =elixirArguments  skipwhite  skipnl 
151+ syn  match   elixirPrivateFunctionDeclaration  " [^[:space:];#<,()\[\] ]\+ "  contained                       nextgroup =elixirArguments  skipwhite  skipnl 
152+ syn  match   elixirProtocolDeclaration         " [^[:space:];#<]\+ "         contained  contains =elixirAlias                            skipwhite  skipnl 
153+ syn  match   elixirImplDeclaration             " [^[:space:];#<]\+ "         contained  contains =elixirAlias                            skipwhite  skipnl 
154+ syn  match   elixirRecordDeclaration           " [^[:space:];#<]\+ "         contained  contains =elixirAlias,elixirAtom                 skipwhite  skipnl 
155+ syn  match   elixirPrivateRecordDeclaration    " [^[:space:];#<]\+ "         contained  contains =elixirAlias,elixirAtom                 skipwhite  skipnl 
156+ syn  match   elixirMacroDeclaration            " [^[:space:];#<,()\[\] ]\+ "  contained                       nextgroup =elixirArguments  skipwhite  skipnl 
157+ syn  match   elixirPrivateMacroDeclaration     " [^[:space:];#<,()\[\] ]\+ "  contained                       nextgroup =elixirArguments  skipwhite  skipnl 
158+ syn  match   elixirDelegateDeclaration         " [^[:space:];#<,()\[\] ]\+ "  contained  contains =elixirFunctionDeclaration              skipwhite  skipnl 
159+ syn  region  elixirDelegateDeclaration         start =' \[ '       end =' \] '      contained  contains =elixirFunctionDeclaration              skipwhite  skipnl 
160+ syn  match   elixirOverridableDeclaration      " [^[:space:];#<]\+ "         contained  contains =elixirAlias,elixirAtom                 skipwhite  skipnl 
161+ syn  match   elixirExceptionDeclaration        " [^[:space:];#<]\+ "         contained  contains =elixirAlias,elixirAtom                 skipwhite  skipnl 
162+ syn  match   elixirCallbackDeclaration         " [^[:space:];#<,()\[\] ]\+ "  contained  contains =elixirFunctionDeclaration              skipwhite  skipnl 
160163
161164"  ExUnit
162165syn  match   elixirExUnitMacro  " \( ^\s *\)\@ <=\<\( test\| describe\| setup\| setup_all\| on_exit\| doctest\)\> " 
163166syn  match   elixirExUnitAssert  " \( ^\s *\)\@ <=\<\( assert\| assert_in_delta\| assert_raise\| assert_receive\| assert_received\| catch_error\)\> " 
164167syn  match   elixirExUnitAssert  " \( ^\s *\)\@ <=\<\( catch_exit\| catch_throw\| flunk\| refute\| refute_in_delta\| refute_receive\| refute_received\)\> " 
165168
166- hi  def  link  elixirBlockDefinition         Define 
167- hi  def  link  elixirDefine                  Define 
168- hi  def  link  elixirPrivateDefine           Define 
169- hi  def  link  elixirGuard                   Define 
170- hi  def  link  elixirPrivateGuard            Define 
171- hi  def  link  elixirModuleDefine            Define 
172- hi  def  link  elixirProtocolDefine          Define 
173- hi  def  link  elixirImplDefine              Define 
174- hi  def  link  elixirRecordDefine            Define 
175- hi  def  link  elixirPrivateRecordDefine     Define 
176- hi  def  link  elixirMacroDefine             Define 
177- hi  def  link  elixirPrivateMacroDefine      Define 
178- hi  def  link  elixirDelegateDefine          Define 
179- hi  def  link  elixirOverridableDefine       Define 
180- hi  def  link  elixirExceptionDefine         Define 
181- hi  def  link  elixirCallbackDefine          Define 
182- hi  def  link  elixirStructDefine            Define 
183- hi  def  link  elixirExUnitMacro             Define 
184- hi  def  link  elixirModuleDeclaration       Type 
185- hi  def  link  elixirFunctionDeclaration     Function 
186- hi  def  link  elixirMacroDeclaration        Macro 
187- hi  def  link  elixirInclude                 Include 
188- hi  def  link  elixirComment                 Comment 
189- hi  def  link  elixirTodo                    Todo 
190- hi  def  link  elixirKeyword                 Define 
191- hi  def  link  elixirExUnitAssert            Keyword 
192- hi  def  link  elixirOperator                Operator 
193- hi  def  link  elixirAtom                    Constant 
194- hi  def  link  elixirPseudoVariable          Constant 
195- hi  def  link  elixirAlias                   Type 
196- hi  def  link  elixirBoolean                 Boolean 
197- hi  def  link  elixirVariable                Identifier 
198- hi  def  link  elixirSelf                    Identifier 
199- hi  def  link  elixirUnusedVariable          Comment 
200- hi  def  link  elixirNumber                  Number 
201- hi  def  link  elixirDocString               Comment 
202- hi  def  link  elixirDocTest                 elixirKeyword 
203- hi  def  link  elixirAtomInterpolated        elixirAtom 
204- hi  def  link  elixirRegex                   elixirString 
205- hi  def  link  elixirRegexEscape             elixirSpecial 
206- hi  def  link  elixirRegexEscapePunctuation  elixirSpecial 
207- hi  def  link  elixirRegexCharClass          elixirSpecial 
208- hi  def  link  elixirRegexQuantifier         elixirSpecial 
209- hi  def  link  elixirSpecial                 Special 
210- hi  def  link  elixirString                  String 
211- hi  def  link  elixirSigil                   String 
212- hi  def  link  elixirStringDelimiter         Delimiter 
213- hi  def  link  elixirRegexDelimiter          Delimiter 
214- hi  def  link  elixirInterpolationDelimiter  Delimiter 
215- hi  def  link  elixirSigilDelimiter          Delimiter 
169+ hi  def  link  elixirBlockDefinition             Define 
170+ hi  def  link  elixirDefine                      Define 
171+ hi  def  link  elixirPrivateDefine               Define 
172+ hi  def  link  elixirGuard                       Define 
173+ hi  def  link  elixirPrivateGuard                Define 
174+ hi  def  link  elixirModuleDefine                Define 
175+ hi  def  link  elixirProtocolDefine              Define 
176+ hi  def  link  elixirImplDefine                  Define 
177+ hi  def  link  elixirRecordDefine                Define 
178+ hi  def  link  elixirPrivateRecordDefine         Define 
179+ hi  def  link  elixirMacroDefine                 Define 
180+ hi  def  link  elixirPrivateMacroDefine          Define 
181+ hi  def  link  elixirDelegateDefine              Define 
182+ hi  def  link  elixirOverridableDefine           Define 
183+ hi  def  link  elixirExceptionDefine             Define 
184+ hi  def  link  elixirCallbackDefine              Define 
185+ hi  def  link  elixirStructDefine                Define 
186+ hi  def  link  elixirExUnitMacro                 Define 
187+ hi  def  link  elixirModuleDeclaration           Type 
188+ hi  def  link  elixirPrivateFunctionDeclaration  elixirFunctionDeclaration 
189+ hi  def  link  elixirFunctionDeclaration         Function 
190+ hi  def  link  elixirPrivateMacroDeclaration     elixirMacroDeclaration 
191+ hi  def  link  elixirMacroDeclaration            Macro 
192+ hi  def  link  elixirInclude                     Include 
193+ hi  def  link  elixirComment                     Comment 
194+ hi  def  link  elixirTodo                        Todo 
195+ hi  def  link  elixirKeyword                     Define 
196+ hi  def  link  elixirExUnitAssert                Keyword 
197+ hi  def  link  elixirOperator                    Operator 
198+ hi  def  link  elixirAtom                        Constant 
199+ hi  def  link  elixirPseudoVariable              Constant 
200+ hi  def  link  elixirAlias                       Type 
201+ hi  def  link  elixirBoolean                     Boolean 
202+ hi  def  link  elixirVariable                    Identifier 
203+ hi  def  link  elixirSelf                        Identifier 
204+ hi  def  link  elixirUnusedVariable              Comment 
205+ hi  def  link  elixirNumber                      Number 
206+ hi  def  link  elixirDocString                   Comment 
207+ hi  def  link  elixirDocTest                     elixirKeyword 
208+ hi  def  link  elixirAtomInterpolated            elixirAtom 
209+ hi  def  link  elixirRegex                       elixirString 
210+ hi  def  link  elixirRegexEscape                 elixirSpecial 
211+ hi  def  link  elixirRegexEscapePunctuation      elixirSpecial 
212+ hi  def  link  elixirRegexCharClass              elixirSpecial 
213+ hi  def  link  elixirRegexQuantifier             elixirSpecial 
214+ hi  def  link  elixirSpecial                     Special 
215+ hi  def  link  elixirString                      String 
216+ hi  def  link  elixirSigil                       String 
217+ hi  def  link  elixirStringDelimiter             Delimiter 
218+ hi  def  link  elixirRegexDelimiter              Delimiter 
219+ hi  def  link  elixirInterpolationDelimiter      Delimiter 
220+ hi  def  link  elixirSigilDelimiter              Delimiter 
221+ hi  def  link  elixirPrivateRecordDeclaration    elixirRecordDeclaration 
216222
217223let  b: current_syntax  =  " elixir" 
218224
0 commit comments