Skip to content

Commit 223b195

Browse files
committed
fixed dialyzer option validation
the code added in v0.21.2 wasn't executed
1 parent 37c7019 commit 223b195

File tree

1 file changed

+11
-8
lines changed
  • apps/language_server/lib/language_server

1 file changed

+11
-8
lines changed

apps/language_server/lib/language_server/server.ex

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1787,25 +1787,28 @@ defmodule ElixirLS.LanguageServer.Server do
17871787
else
17881788
IO.warn("Invalid `dialyzerWarnOpts` #{inspect(dialyzer_warn_opts)}")
17891789
end
1790+
end
17901791

1791-
all_warns =
1792-
ElixirLS.LanguageServer.Dialyzer.Analyzer.all_warns() |> Enum.map(&to_string/1)
1793-
1794-
for opt <- dialyzer_warn_opts, opt not in all_warns do
1795-
Logger.error("Invalid `dialyzerWarnOpts`: unknown warning option `#{opt}`")
1792+
try do
1793+
ElixirLS.LanguageServer.Dialyzer.Analyzer.matching_tags(
1794+
dialyzer_warn_opts
1795+
|> Enum.map(&String.to_atom/1)
1796+
)
1797+
catch
1798+
{:dialyzer_options_error, message} ->
1799+
Logger.error("Invalid `dialyzerWarnOpts`: #{message}")
17961800

17971801
JsonRpc.show_message(
17981802
:error,
1799-
"Invalid `dialyzerWarnOpts` in configuration. Unknown warning option `#{opt}`."
1803+
"Invalid `dialyzerWarnOpts` in configuration. #{message}."
18001804
)
18011805

18021806
unless :persistent_term.get(:language_server_test_mode, false) do
18031807
Process.sleep(2000)
18041808
System.halt(1)
18051809
else
1806-
IO.warn("Invalid `dialyzerWarnOpts`: unknown warning option `#{opt}`")
1810+
IO.warn("Invalid `dialyzerWarnOpts`: #{message}")
18071811
end
1808-
end
18091812
end
18101813

18111814
dialyzer_formats = [

0 commit comments

Comments
 (0)