Skip to content

Commit 2fb3108

Browse files
committed
fix crash when hover header cannot be formatted
1 parent cbdec4b commit 2fb3108

File tree

1 file changed

+13
-4
lines changed
  • apps/language_server/lib/language_server/providers

1 file changed

+13
-4
lines changed

apps/language_server/lib/language_server/providers/hover.ex

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,7 @@ defmodule ElixirLS.LanguageServer.Providers.Hover do
130130

131131
function_name =
132132
"#{mod_str}.#{fun_str}(#{Enum.join(info.args, ", ")})"
133-
|> Code.format_string!(line_length: 40)
134-
|> to_string
133+
|> format_header
135134

136135
"""
137136
```elixir
@@ -159,8 +158,7 @@ defmodule ElixirLS.LanguageServer.Providers.Hover do
159158

160159
type_name =
161160
"#{mod_formatted}#{info.type}(#{Enum.join(info.args, ", ")})"
162-
|> Code.format_string!(line_length: 40)
163-
|> to_string
161+
|> format_header
164162

165163
"""
166164
```elixir
@@ -307,4 +305,15 @@ defmodule ElixirLS.LanguageServer.Providers.Hover do
307305
defp get_metadata_entry_md({key, value}) do
308306
"**#{key}** #{value}"
309307
end
308+
309+
defp format_header(text) do
310+
text
311+
|> Code.format_string!(line_length: 40)
312+
|> to_string
313+
rescue
314+
_ ->
315+
# Code.format_string! can raise SyntaxError e.g.
316+
# for Kernel...(first, last)
317+
text
318+
end
310319
end

0 commit comments

Comments
 (0)