@@ -7,16 +7,14 @@ defmodule ElixirLS.LanguageServer.Providers.CodeLens.Test do
7
7
@ run_test_command "elixir.test.run"
8
8
9
9
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 )
13
12
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 )
15
15
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
20
18
end
21
19
22
20
defp get_module_lenses ( % Metadata { } = metadata , file_path ) do
@@ -91,4 +89,16 @@ defmodule ElixirLS.LanguageServer.Providers.CodeLens.Test do
91
89
92
90
defp build_function_test_code_lens ( { :describe , _arity } , file_path , line ) ,
93
91
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
94
104
end
0 commit comments