From 586a9354ab6026a5f6cbb2336b0a8f6377d36461 Mon Sep 17 00:00:00 2001 From: Lukasz Samson Date: Tue, 27 Feb 2024 07:56:42 +0100 Subject: [PATCH] fix crash on invalid diagnostic severity --- .../lib/language_server/diagnostics.ex | 23 +++++++++++++++---- .../providers/on_type_formatting.ex | 1 + 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/apps/language_server/lib/language_server/diagnostics.ex b/apps/language_server/lib/language_server/diagnostics.ex index 394963199..7e04d1361 100644 --- a/apps/language_server/lib/language_server/diagnostics.ex +++ b/apps/language_server/lib/language_server/diagnostics.ex @@ -4,6 +4,7 @@ defmodule ElixirLS.LanguageServer.Diagnostics do from various sources """ alias ElixirLS.LanguageServer.{SourceFile, JsonRpc} + require Logger @enforce_keys [:file, :severity, :message, :position, :compiler_name] defstruct [ @@ -314,10 +315,24 @@ defmodule ElixirLS.LanguageServer.Diagnostics do for %__MODULE__{} = diagnostic <- uri_diagnostics do severity = case diagnostic.severity do - :error -> 1 - :warning -> 2 - :information -> 3 - :hint -> 4 + :error -> + 1 + + :warning -> + 2 + + :information -> + 3 + + :hint -> + 4 + + other -> + Logger.warn( + "Invalid severity on diagnostic: #{inspect(other)}, using warning level" + ) + + 2 end %{ diff --git a/apps/language_server/lib/language_server/providers/on_type_formatting.ex b/apps/language_server/lib/language_server/providers/on_type_formatting.ex index b2fa2cbbb..c87a22763 100644 --- a/apps/language_server/lib/language_server/providers/on_type_formatting.ex +++ b/apps/language_server/lib/language_server/providers/on_type_formatting.ex @@ -49,6 +49,7 @@ defmodule ElixirLS.LanguageServer.Providers.OnTypeFormatting do {:ok, nil} end end + def format(%SourceFile{} = _source_file, _line, _character, _, _options) do {:ok, nil} end