anchor.diff:  
   implementation
   
  +uses
  +  DelphiAST.ProjectIndexer,
  +  DelphiLens.DelphiASTHelpers;
  +
   type
     TDLUIWorkerContext = class(TInterfacedObject, IDLUIWorkerContext)
     strict private
  -    FStorage: IDLUIXStorage;
  -    FProject: IDLScanResult;
  -    FSource : TDLUIXLocation;
  -    FTarget : Nullable<TDLUIXLocation>;
  +    FNamedSyntaxNode: TSyntaxNode;
  +    FProject        : IDLScanResult;
  +    FSource         : TDLUIXLocation;
  +    FStorage        : IDLUIXStorage;
  +    FSyntaxNode     : TSyntaxNode;
  +    FTarget         : Nullable<TDLUIXLocation>;
     strict protected
  +    function  GetNamedSyntaxNode: TSyntaxNode;
       function  GetProject: IDLScanResult;
  +    function  GetSyntaxNode: TSyntaxNode;
       function  GetSource: TDLUIXLocation;
       function  GetStorage: IDLUIXStorage;
       function  GetTarget: Nullable<TDLUIXLocation>;
  
positive.code:     property Project: IDLScanResult read GetProject;
      property Source: TDLUIXLocation read GetSource;
      property Target: Nullable<TDLUIXLocation> read GetTarget write SetTarget;
    end; { TDLUIWorkerContext }
  
  { exports }
  
negative.code: 
  constructor TDLUIWorkerContext.Create(const AStorage: IDLUIXStorage; const AProject:
    IDLScanResult; const ASource: TDLUIXLocation);
  var
    unitInfo: TProjectIndexer.TUnitInfo;
  begin
    FStorage := AStorage;
    FProject := AProject;
    FSource := ASource;
    if AProject.ParsedUnits.Find(ASource.UnitName, unitInfo)
       and assigned(unitInfo.SyntaxTree)
    then
      FSyntaxNode := unitInfo.SyntaxTree.FindLocation(ASource.Line, ASource.Column);
    if assigned(FSyntaxNode) then
      FNamedSyntaxNode := FSyntaxNode.FindParentWithName;
  end; { TDLUIWorkerContext.Create }
  
  function TDLUIWorkerContext.GetNamedSyntaxNode: TSyntaxNode;
  begin
    Result := FNamedSyntaxNode;
  end; { TDLUIWorkerContext.GetNamedSyntaxNode }
  
  function TDLUIWorkerContext.GetProject: IDLScanResult;
  begin
    Result := FProject;
  end; { TDLUIWorkerContext.GetProject }
  
  function TDLUIWorkerContext.GetSource: TDLUIXLocation;
  begin
    Result := FSource;
  end; { TDLUIWorkerContext.GetSource }
  
  function TDLUIWorkerContext.GetStorage: IDLUIXStorage;
  begin
    Result := FStorage;
  end; { TDLUIWorkerContext.GetStorage }
  
  function TDLUIWorkerContext.GetSyntaxNode: TSyntaxNode;
  begin
    Result := FSyntaxNode;
  end; { TDLUIWorkerContext.GetSyntaxNode }
  
  function TDLUIWorkerContext.GetTarget: Nullable<TDLUIXLocation>;
  begin
    Result := FTarget;
  end; { TDLUIWorkerContext.GetTarget }
  
  procedure TDLUIWorkerContext.SetTarget(const value: Nullable<TDLUIXLocation>);
  begin
  