@@ -31,23 +31,29 @@ defmodule NextLS.Runtime.Sidecar do
3131 end
3232
3333 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
5157 end
5258
5359 { :noreply , state }
0 commit comments