Skip to content

Commit 529933b

Browse files
committed
Move symbol matching to not match unused variable
1 parent fefac1c commit 529933b

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

syntax/elixir.vim

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,9 @@ syn keyword elixirInclude import require alias use
2424

2525
syn match elixirId '\<[_a-zA-Z]\w*[!?]\?\>'
2626

27-
syn match elixirSymbol '\(:\)\@<!:\%([a-zA-Z_]\w*\%([?!]\|=[>=]\@!\)\?\|<>\|===\?\|>=\?\|<=\?\)'
28-
syn match elixirSymbol '\(:\)\@<!:\%(<=>\|&&\?\|%\(()\|\[\]\|{}\)\|++\?\|--\?\|||\?\|!\|//\|[%&`/|]\)'
29-
syn match elixirSymbol "\%([a-zA-Z_]\w*\([?!]\)\?\):\(:\)\@!"
27+
" This unfortunately also matches function names in function calls
28+
syn match elixirUnusedVariable '\<_\w*\>'
3029

31-
syn match elixirAlias '\<[A-Z]\w*\>'
3230
syn keyword elixirOperator and not or when xor in
3331
syn match elixirOperator '!==\|!=\|!'
3432
syn match elixirOperator '=\~\|===\|==\|='
@@ -42,11 +40,16 @@ syn match elixirOperator '\.\.\|\.'
4240
syn match elixirOperator "\^\^\^\|\^"
4341
syn match elixirOperator '\\\\\|::\|\*\|/\|\~\~\~\|@'
4442

45-
syn match elixirUnusedVariable '\<_\w*\>'
43+
syn match elixirSymbol '\(:\)\@<!:\%([a-zA-Z_]\w*\%([?!]\|=[>=]\@!\)\?\|<>\|===\?\|>=\?\|<=\?\)'
44+
syn match elixirSymbol '\(:\)\@<!:\%(<=>\|&&\?\|%\(()\|\[\]\|{}\)\|++\?\|--\?\|||\?\|!\|//\|[%&`/|]\)'
45+
syn match elixirSymbol "\%([a-zA-Z_]\w*[?!]\?\):\(:\)\@!"
46+
47+
syn match elixirAlias '\<[A-Z]\w*\(\.[A-Z]\w*\)*\>'
4648

4749
syn keyword elixirBoolean true false nil
4850

49-
syn match elixirVariable '@[a-zA-Z_]\w*\|&\d'
51+
syn match elixirVariable '@[a-z]\w*'
52+
syn match elixirVariable '&\d\+'
5053

5154
syn keyword elixirPseudoVariable __FILE__ __DIR__ __MODULE__ __ENV__ __CALLER__
5255

0 commit comments

Comments
 (0)