Skip to content

Commit 2142728

Browse files
committed
don't crash when cleaning non mix projects
1 parent 075435b commit 2142728

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

apps/language_server/lib/language_server/json_rpc.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ defmodule ElixirLS.LanguageServer.JsonRpc do
262262
defp error_code_and_message(:unknown_error_code), do: {-32001, "Unknown error code"}
263263

264264
# -32899 - -32800 - LSP reserved error codes
265-
defp error_code_and_message(:request_failed), do: {-32803, "Request cancelled"}
265+
defp error_code_and_message(:request_failed), do: {-32803, "Request failed"}
266266
defp error_code_and_message(:server_cancelled), do: {-32802, "Server cancelled"}
267267
defp error_code_and_message(:content_modified), do: {-32801, "Content modified"}
268268
defp error_code_and_message(:request_cancelled), do: {-32800, "Request cancelled"}

apps/language_server/lib/language_server/providers/execute_command/mix_clean.ex

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,14 @@ defmodule ElixirLS.LanguageServer.Providers.ExecuteCommand.MixClean do
22
@behaviour ElixirLS.LanguageServer.Providers.ExecuteCommand
33

44
@impl ElixirLS.LanguageServer.Providers.ExecuteCommand
5-
def execute([clean_deps?], state) do
6-
case ElixirLS.LanguageServer.Build.clean(state.project_dir, clean_deps?) do
5+
def execute(_, %{project_dir: nil}) do
6+
{:error, :invalid_request, "No mix project", false}
7+
end
8+
9+
def execute([clean_deps?], %{project_dir: project_dir}) do
10+
case ElixirLS.LanguageServer.Build.clean(project_dir, clean_deps?) do
711
:ok -> {:ok, %{}}
12+
:no_mixfile -> {:error, :invalid_request, "No mix.exs in project dir", false}
813
{:error, reason} -> {:error, :request_failed, "Mix clean failed: #{inspect(reason)}", true}
914
end
1015
end

0 commit comments

Comments
 (0)