Skip to content

Commit f6585e5

Browse files
author
Bryan Enders
committed
Syntax: Add private declarations
Why --- I want to be able to differentiate between public and private declarations How --- * Add **elixirPrivateFunctionDeclaration** group * Add **elixirPrivateRecordDeclaration** group * Add **elixirPrivateMacroDeclaration** group * Link **elixirPrivateFunctionDeclaration** to **elixirFunctionDeclaration** to preserve behavior * Link **elixirPrivateRecordDeclaration** to **elixirRecordDeclaration** to preserve behavior * Link **elixirPrivateMacroDeclaration** to **elixirMacroDeclaration** to preserve behavior * Add **elixirPrivateFunctionDeclaration**, **elixirPrivateRecordDeclaration**, and **elixirPrivateMacroDeclaration** to **elixirDeclaration** cluster
1 parent a4991c9 commit f6585e5

File tree

1 file changed

+85
-79
lines changed

1 file changed

+85
-79
lines changed

syntax/elixir.vim

Lines changed: 85 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ syn sync minlines=2000
1111
syn cluster elixirNotTop contains=@elixirRegexSpecial,@elixirStringContained,@elixirDeclaration,elixirTodo,elixirArguments,elixirBlockDefinition,elixirUnusedVariable,elixirStructDelimiter
1212
syn cluster elixirRegexSpecial contains=elixirRegexEscape,elixirRegexCharClass,elixirRegexQuantifier,elixirRegexEscapePunctuation
1313
syn 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

1616
syn match elixirComment '#.*' contains=elixirTodo,@Spell
1717
syn keyword elixirTodo FIXME NOTE TODO OPTIMIZE XXX HACK contained
@@ -128,93 +128,99 @@ syn region elixirDocString matchgroup=elixirDocSigilDelimiter start=+\%(@\w*doc
128128
syn region elixirDocString matchgroup=elixirDocSigilDelimiter start=+\%(@\w*doc\s\+\)\@<=\~[Ss]\z("""\)+ end=+\z1+ 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
146146
syn 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
162165
syn match elixirExUnitMacro "\(^\s*\)\@<=\<\(test\|describe\|setup\|setup_all\|on_exit\|doctest\)\>"
163166
syn match elixirExUnitAssert "\(^\s*\)\@<=\<\(assert\|assert_in_delta\|assert_raise\|assert_receive\|assert_received\|catch_error\)\>"
164167
syn 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 elixirDocStringDelimiter elixirStringDelimiter
213-
hi def link elixirDocSigilDelimiter elixirSigilDelimiter
214-
hi def link elixirStringDelimiter Delimiter
215-
hi def link elixirRegexDelimiter Delimiter
216-
hi def link elixirInterpolationDelimiter Delimiter
217-
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 elixirDocStringDelimiter elixirStringDelimiter
218+
hi def link elixirDocSigilDelimiter elixirSigilDelimiter
219+
hi def link elixirStringDelimiter Delimiter
220+
hi def link elixirRegexDelimiter Delimiter
221+
hi def link elixirInterpolationDelimiter Delimiter
222+
hi def link elixirSigilDelimiter Delimiter
223+
hi def link elixirPrivateRecordDeclaration elixirRecordDeclaration
218224

219225
let b:current_syntax = "elixir"
220226

0 commit comments

Comments
 (0)