Skip to content

Commit e19dfe9

Browse files
committed
fix crash when describe block can't be found
1 parent db8cdda commit e19dfe9

File tree

2 files changed

+26
-18
lines changed

2 files changed

+26
-18
lines changed

apps/language_server/lib/language_server/providers/code_lens/test.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ defmodule ElixirLS.LanguageServer.Providers.CodeLens.Test do
128128
source_lines
129129
)
130130
end
131+
|> Enum.reject(&is_nil/1)
131132
end
132133

133134
defp get_module_lenses(test_modules, file_path, project_dir) do

apps/language_server/lib/language_server/providers/code_lens/test/describe_block.ex

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,28 +9,35 @@ defmodule ElixirLS.LanguageServer.Providers.CodeLens.Test.DescribeBlock do
99
def find_block_info(line, lines_to_env_list, lines_to_env_list_length, source_lines) do
1010
name = get_name(source_lines, line)
1111

12-
module =
13-
lines_to_env_list
14-
|> Enum.find(fn {env_line, _env} -> env_line == line end)
15-
|> elem(1)
16-
|> Map.get(:module)
17-
18-
body_scope_id =
19-
get_body_scope_id(
20-
line,
21-
lines_to_env_list,
22-
lines_to_env_list_length
23-
)
24-
25-
%__MODULE__{line: line, body_scope_id: body_scope_id, name: name, module: module}
12+
if name do
13+
module =
14+
lines_to_env_list
15+
|> Enum.find(fn {env_line, _env} -> env_line == line end)
16+
|> elem(1)
17+
|> Map.get(:module)
18+
19+
body_scope_id =
20+
get_body_scope_id(
21+
line,
22+
lines_to_env_list,
23+
lines_to_env_list_length
24+
)
25+
26+
%__MODULE__{line: line, body_scope_id: body_scope_id, name: name, module: module}
27+
end
2628
end
2729

2830
defp get_name(source_lines, declaration_line) do
29-
%{"name" => name} =
30-
~r/^\s*describe "(?<name>.*)" do/u
31-
|> Regex.named_captures(Enum.at(source_lines, declaration_line - 1))
31+
case Regex.named_captures(
32+
~r/^\s*describe "(?<name>.*)" do/u,
33+
Enum.at(source_lines, declaration_line - 1)
34+
) do
35+
%{"name" => name} ->
36+
name
3237

33-
name
38+
nil ->
39+
nil
40+
end
3441
end
3542

3643
defp get_body_scope_id(

0 commit comments

Comments
 (0)