Skip to content

Commit b8aeb9c

Browse files
author
Étienne Lévesque
committed
Validate that parsing did not fail
1 parent d0b25ba commit b8aeb9c

File tree

1 file changed

+18
-8
lines changed
  • apps/language_server/lib/language_server/providers/code_lens

1 file changed

+18
-8
lines changed

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

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,14 @@ defmodule ElixirLS.LanguageServer.Providers.CodeLens.Test do
77
@run_test_command "elixir.test.run"
88

99
def code_lens(uri, text) do
10-
buffer_file_metadata =
11-
text
12-
|> Parser.parse_string(true, true, 1)
10+
with {:ok, buffer_file_metadata} <- parse_source(text) do
11+
file_path = SourceFile.path_from_uri(uri)
1312

14-
file_path = SourceFile.path_from_uri(uri)
13+
function_lenses = get_function_lenses(buffer_file_metadata, file_path)
14+
module_lenses = get_module_lenses(buffer_file_metadata, file_path)
1515

16-
function_lenses = get_function_lenses(buffer_file_metadata, file_path)
17-
module_lenses = get_module_lenses(buffer_file_metadata, file_path)
18-
19-
{:ok, function_lenses ++ module_lenses}
16+
{:ok, function_lenses ++ module_lenses}
17+
end
2018
end
2119

2220
defp get_module_lenses(%Metadata{} = metadata, file_path) do
@@ -91,4 +89,16 @@ defmodule ElixirLS.LanguageServer.Providers.CodeLens.Test do
9189

9290
defp build_function_test_code_lens({:describe, _arity}, file_path, line),
9391
do: build_function_test_code_lens("Run tests", file_path, line)
92+
93+
defp parse_source(text) do
94+
buffer_file_metadata =
95+
text
96+
|> Parser.parse_string(true, true, 1)
97+
98+
if buffer_file_metadata.error != nil do
99+
{:error, buffer_file_metadata}
100+
else
101+
{:ok, buffer_file_metadata}
102+
end
103+
end
94104
end

0 commit comments

Comments
 (0)