Skip to content

Commit d38f1d2

Browse files
committed
catch unexpected elixir parser errors
1 parent 801f6e3 commit d38f1d2

File tree

1 file changed

+18
-0
lines changed
  • apps/language_server/lib/language_server

1 file changed

+18
-0
lines changed

apps/language_server/lib/language_server/parser.ex

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,24 @@ defmodule ElixirLS.LanguageServer.Parser do
334334
# we can't fix it
335335
{{:not_parsable, cursor_position}, @dummy_ast, @dummy_metadata}
336336
end
337+
catch
338+
kind, err ->
339+
{payload, stacktrace} = Exception.blame(kind, err, __STACKTRACE__)
340+
341+
message = Exception.format(kind, payload, stacktrace)
342+
343+
Logger.warning(
344+
"Unexpected parser error, please report it to elixir project https://github.com/elixir-lang/elixir/issues\n" <>
345+
message
346+
)
347+
348+
JsonRpc.telemetry(
349+
"parser_error",
350+
%{"elixir_ls.parser_error" => message},
351+
%{}
352+
)
353+
354+
{{:not_parsable, cursor_position}, @dummy_ast, @dummy_metadata}
337355
end
338356

339357
defp fix_missing_env(acc, source, nil), do: ElixirSense.Core.Metadata.fill(source, acc)

0 commit comments

Comments
 (0)