@@ -31,23 +31,29 @@ defmodule NextLS.Runtime.Sidecar do
31
31
end
32
32
33
33
def handle_info ( { { :tracer , :reference , :alias } , payload } , state ) do
34
- if payload . meta [ :end_of_expression ] do
35
- start = % { line: payload . meta [ :line ] , col: payload . meta [ :column ] }
36
- stop = % { line: payload . meta [ :end_of_expression ] [ :line ] , col: payload . meta [ :end_of_expression ] [ :column ] }
37
-
38
- { start , stop } =
39
- Aliases . extract_alias_range (
40
- File . read! ( payload . file ) ,
41
- { start , stop } ,
42
- payload . identifier |> Macro . to_string ( ) |> String . to_atom ( )
43
- )
44
-
45
- payload =
46
- payload
47
- |> Map . put ( :identifier , payload . module )
48
- |> Map . put ( :range , % { start: start , stop: stop } )
49
-
50
- DB . insert_reference ( state . db , payload )
34
+ # TODO: in the next version of elixir, generated code will not have :column metadata, so we can tell if the alias is from
35
+ # a macro. For now, just try and rescue
36
+ try do
37
+ if payload . meta [ :end_of_expression ] do
38
+ start = % { line: payload . meta [ :line ] , col: payload . meta [ :column ] }
39
+ stop = % { line: payload . meta [ :end_of_expression ] [ :line ] , col: payload . meta [ :end_of_expression ] [ :column ] }
40
+
41
+ { start , stop } =
42
+ Aliases . extract_alias_range (
43
+ File . read! ( payload . file ) ,
44
+ { start , stop } ,
45
+ payload . identifier |> Macro . to_string ( ) |> String . to_atom ( )
46
+ )
47
+
48
+ payload =
49
+ payload
50
+ |> Map . put ( :identifier , payload . module )
51
+ |> Map . put ( :range , % { start: start , stop: stop } )
52
+
53
+ DB . insert_reference ( state . db , payload )
54
+ end
55
+ rescue
56
+ _ -> :ok
51
57
end
52
58
53
59
{ :noreply , state }
0 commit comments