diff --git a/apps/elixir_ls_utils/lib/completion_engine.ex b/apps/elixir_ls_utils/lib/completion_engine.ex index 14c8fafcb..c6744ffeb 100644 --- a/apps/elixir_ls_utils/lib/completion_engine.ex +++ b/apps/elixir_ls_utils/lib/completion_engine.ex @@ -358,6 +358,11 @@ defmodule ElixirLS.Utils.CompletionEngine do :none -> no() + + # cursor_context/1 gains new context types with Elixir releases; an + # unknown one degrades to no suggestions instead of crashing the request + _other -> + no() end end diff --git a/apps/language_server/lib/language_server/parser.ex b/apps/language_server/lib/language_server/parser.ex index f741a31a8..ad2b74499 100644 --- a/apps/language_server/lib/language_server/parser.ex +++ b/apps/language_server/lib/language_server/parser.ex @@ -569,12 +569,11 @@ defmodule ElixirLS.LanguageServer.Parser do {:error, diagnostic} e -> - if is_struct(e) and - e.__struct__ in [ - Phoenix.LiveView.Tokenizer.ParseError, - Phoenix.LiveView.HTMLTokenizer.ParseError, - Phoenix.LiveView.TagEngine.Tokenizer.ParseError - ] do + if e.__struct__ in [ + Phoenix.LiveView.Tokenizer.ParseError, + Phoenix.LiveView.HTMLTokenizer.ParseError, + Phoenix.LiveView.TagEngine.Tokenizer.ParseError + ] do diagnostic = Diagnostics.from_error(:error, e, __STACKTRACE__, file, :no_stacktrace)