From b25794e81b79d4ce1a6f2d9d0fbcc6876ecaa124 Mon Sep 17 00:00:00 2001 From: Jon Parise Date: Thu, 1 Nov 2018 13:35:18 -0700 Subject: elixir-ls now recognizes umbrella projects Previously, elixir-ls would treat each sub-project within an umbrella as standalone, which isn't desirable from a language server perspective. Added ale#handlers#elixir#FindMixUmbrellaRoot, which locates the current project's root and then continues searching upwards for a potential umbrella project root. This literally looks just two levels up to keep things simple while keeping in line with Elixir project conventions. Use this new function to determine elixir-ls's LSP project root. --- .../test_elixir_mix_command_callbacks.vader | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'test/command_callback/test_elixir_mix_command_callbacks.vader') diff --git a/test/command_callback/test_elixir_mix_command_callbacks.vader b/test/command_callback/test_elixir_mix_command_callbacks.vader index 9315a850..ec7b9911 100644 --- a/test/command_callback/test_elixir_mix_command_callbacks.vader +++ b/test/command_callback/test_elixir_mix_command_callbacks.vader @@ -18,9 +18,16 @@ Execute(The default mix command should be correct): \ . g:env_prefix \ . 'mix compile %s' -Execute(The FindMixProjectRoot should detect the project root directory via mix.exs): - silent execute 'file ' . fnameescape(g:dir . '/elixir_paths/mix_project/lib/app.ex') +Execute(FindMixProjectRoot should detect the project root directory via mix.exs): + silent execute 'file ' . fnameescape(g:dir . '/elixir_paths/mix_project/lib/app.ex') - AssertEqual - \ ale#path#Simplify(g:dir . '/elixir_paths/mix_project'), + AssertEqual + \ ale#path#Simplify(g:dir . '/elixir_paths/mix_project'), \ ale#handlers#elixir#FindMixProjectRoot(bufnr('')) + +Execute(FindMixUmbrellaRoot should detect the umbrella root directory via mix.exs): + silent execute 'file ' . fnameescape(g:dir . '/elixir_paths/umbrella_project/apps/app1/lib/app.ex') + + AssertEqual + \ ale#path#Simplify(g:dir . '/elixir_paths/umbrella_project'), + \ ale#handlers#elixir#FindMixUmbrellaRoot(bufnr('')) -- cgit v1.2.3