From 2fb31087e43cb2faf174a84d4a05885f81d5a298 Mon Sep 17 00:00:00 2001 From: Lukasz Samson Date: Tue, 24 Oct 2023 18:38:55 +0200 Subject: [PATCH] fix crash when hover header cannot be formatted --- .../lib/language_server/providers/hover.ex | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/apps/language_server/lib/language_server/providers/hover.ex b/apps/language_server/lib/language_server/providers/hover.ex index 9dfae479d..366221d5b 100644 --- a/apps/language_server/lib/language_server/providers/hover.ex +++ b/apps/language_server/lib/language_server/providers/hover.ex @@ -130,8 +130,7 @@ defmodule ElixirLS.LanguageServer.Providers.Hover do function_name = "#{mod_str}.#{fun_str}(#{Enum.join(info.args, ", ")})" - |> Code.format_string!(line_length: 40) - |> to_string + |> format_header """ ```elixir @@ -159,8 +158,7 @@ defmodule ElixirLS.LanguageServer.Providers.Hover do type_name = "#{mod_formatted}#{info.type}(#{Enum.join(info.args, ", ")})" - |> Code.format_string!(line_length: 40) - |> to_string + |> format_header """ ```elixir @@ -307,4 +305,15 @@ defmodule ElixirLS.LanguageServer.Providers.Hover do defp get_metadata_entry_md({key, value}) do "**#{key}** #{value}" end + + defp format_header(text) do + text + |> Code.format_string!(line_length: 40) + |> to_string + rescue + _ -> + # Code.format_string! can raise SyntaxError e.g. + # for Kernel...(first, last) + text + end end