anchor.diff:              undefined
       end.
   
  -find_record_field_use(_Record, [], _Column) ->
  +find_record_field_use(_Record, [], _Column, _Line) ->
       undefined;
  -find_record_field_use(Record, [{record_field, _, {atom, {_, StartColumn}, Field}, _} | Tail], Column) ->
  +find_record_field_use(Record, [{record_field, _, {atom, {L, StartColumn}, Field}, _} | Tail], Column, Line) ->
       EndColumn = StartColumn + length(atom_to_list(Field)),
       if
  -        StartColumn =< Column andalso Column =< EndColumn -> {field, Record, Field};
  -        true -> find_record_field_use(Record, Tail, Column)
  +        L =:= Line, StartColumn =< Column, Column =< EndColumn -> {field, Record, Field};
  +        true -> find_record_field_use(Record, Tail, Column, Line)
       end.
   
   find_element({module_use, Module}, _CurrentFileSyntaxTree, _CurrentFile) ->
  -    {SyntaxTree, File} = lsp_syntax:module_syntax_tree(Module),
  -    case find_module(SyntaxTree, Module) of
  -        {attribute, {Line, Column}, _} -> {File, Line, Column};
  -        _ -> undefined
  +    case lsp_syntax:module_syntax_tree(Module) of
  +        undefined -> undefined;
  +        {SyntaxTree, File} ->
  +            case find_module(SyntaxTree, Module) of
  +                {attribute, {Line, Column}, _} -> {File, Line, Column};
  +                _ -> undefined
  +            end
       end;
   find_element({hrl, HrlFile}, _CurrentFileSyntaxTree, _CurrentFile) ->
       {HrlFile, 1, 1};
   find_element({function_use, Module, Function, Arity}, _CurrentFileSyntaxTree, _CurrentFile) ->
  -    {SyntaxTree, File} = lsp_syntax:module_syntax_tree(Module),
  -    case find_function(SyntaxTree, Function, Arity) of
  -        {function, {Line, Column}, _Function, _Arity, _Clauses} -> {File, Line, Column};
  -        _ -> undefined
  +    case lsp_syntax:module_syntax_tree(Module) of
  +        undefined -> undefined;
  +        {SyntaxTree, File} ->
  +            case find_function(SyntaxTree, Function, Arity) of
  +                {function, {Line, Column}, _Function, _Arity, _Clauses} -> {File, Line, Column};
  +                _ -> undefined
  +            end
       end;
   find_element({record, Record}, CurrentFileSyntaxTree, _CurrentFile) ->
       case find_record(CurrentFileSyntaxTree, Record) of
  
positive.code:                 Column =< EndColumn -> {variable, Variable, L, StartColumn};
                  true -> undefined
              end;
          ({record, {L, StartColumn}, Record, Fields}, _) when L =:= Line andalso StartColumn =< Column ->
              EndColumn = StartColumn + length(atom_to_list(Record)) + 1,
              if
                  Column =< EndColumn -> {record, Record};
                  true -> find_record_field_use(Record, Fields, Column)
              end;
          ({record, {L, StartColumn}, _, Record, Fields}, _) when L =:= Line andalso StartColumn =< Column ->
              EndColumn = StartColumn + length(atom_to_list(Record)) + 1,
              if
                  Column =< EndColumn -> {record, Record};
                  true -> find_record_field_use(Record, Fields, Column)
              end;
          ({record_field, {L, RecordSttartColumn}, _, Record, {atom, {L, FieldStartColumn}, Field}}, _) when L =:= Line andalso RecordSttartColumn =< Column ->
              FieldEndColumn = FieldStartColumn + length(atom_to_list(Field)),
  
negative.code:             Size2 = Size - 18,
              BaseName = list_to_binary(filename:basename(HrlFile)),
              case LineContents of
                  <<"-include(\"", BaseName:Size1/binary, "\").\r">> when Column > 10, Column =< 6 + Size1 ->
                      {hrl, HrlFile};
                  <<"-include_lib(\"", LongName:Size2/binary, "\").\r">> when Column > 14, Column =< 10 + Size2 ->
                      case filename:split(binary_to_list(LongName)) of
                          [LibName|Remain] ->
                              case code:lib_dir(LibName) of
  