File tree Expand file tree Collapse file tree 3 files changed +20
-7
lines changed Expand file tree Collapse file tree 3 files changed +20
-7
lines changed Original file line number Diff line number Diff line change 44
55describe 'Alias syntax' do
66 it 'colorize only module alias' do
7- expect ( <<~EOF ) . to include_elixir_syntax ( 'elixirAlias' , 'Enum' )
8- Enum.empty?(...)
9- EOF
7+ str = "Enum.empty?(...)"
8+ expect ( str ) . to include_elixir_syntax ( 'elixirAlias' , 'Enum' )
9+ expect ( str ) . to include_elixir_syntax ( 'elixirOperator' , '\.' )
10+ expect ( str ) . to include_elixir_syntax ( 'elixirId' , 'empty?' )
1011 end
1112
1213 it 'colorize the module alias even if it starts with `!`' do
3334 expect ( str ) . to include_elixir_syntax ( 'elixirAlias' , '3' )
3435 expect ( str ) . to include_elixir_syntax ( 'elixirAlias' , 'Manager' )
3536 end
37+
38+ it 'colorize dots in module alias' do
39+ str = "Foo.Bar.Baz.fun(...)"
40+ expect ( str ) . to include_elixir_syntax ( 'elixirAlias' , 'Foo' )
41+ expect ( str ) . to include_elixir_syntax ( 'elixirAlias' , '\.\(Bar\)\@=' )
42+ expect ( str ) . to include_elixir_syntax ( 'elixirAlias' , 'Bar' )
43+ expect ( str ) . to include_elixir_syntax ( 'elixirAlias' , '\.\(Baz\)\@=' )
44+ expect ( str ) . to include_elixir_syntax ( 'elixirAlias' , 'Baz' )
45+ expect ( str ) . to include_elixir_syntax ( 'elixirOperator' , '\.\(fun\)\@=' )
46+ expect ( str ) . to include_elixir_syntax ( 'elixirId' , 'fun' )
47+ end
3648end
Original file line number Diff line number Diff line change 1010 end
1111
1212 it 'defines module name as elixirModuleDeclaration' do
13- expect ( <<~EOF ) . to include_elixir_syntax ( 'elixirModuleDeclaration' , 'HelloPhoenix.HelloController' )
14- defmodule HelloPhoenix.HelloController do
15- EOF
13+ str = "defmodule HelloPhoenix.HelloController do"
14+ expect ( str ) . to include_elixir_syntax ( 'elixirModuleDeclaration' , 'HelloPhoenix' )
15+ expect ( str ) . to include_elixir_syntax ( 'elixirModuleDeclaration' , '\.' )
16+ expect ( str ) . to include_elixir_syntax ( 'elixirModuleDeclaration' , 'HelloController' )
1617 end
1718
1819 it 'does not define module name as elixirAlias' do
Original file line number Diff line number Diff line change @@ -39,7 +39,7 @@ syn match elixirOperator '\.\.\|\.'
3939syn match elixirOperator " \^\^\^\|\^ "
4040syn match elixirOperator ' \\\\\| ::\|\*\| /\|\~\~\~\| @'
4141
42- syn match elixirAlias ' \( [a-z]\)\@ <![A-Z]\w *'
42+ syn match elixirAlias ' \( [a-z]\)\@ <![A-Z]\w *\% ( \. [A-Z] \w * \) * '
4343
4444syn match elixirAtom ' \( :\)\@ <!:\% ([a-zA-Z_]\w *\% ([?!]\| =[>=]\@ !\)\?\| <>\| ===\?\| >=\?\| <=\?\) '
4545syn match elixirAtom ' \( :\)\@ <!:\% (<=>\| &&\?\| %\( ()\|\[\]\| {}\)\| ++\?\| --\?\| ||\?\| !\| //\| [%&`/|]\) '
You can’t perform that action at this time.
0 commit comments