anchor.diff:  function TDLUIXUnitBrowser.CanHandle(const state: TDLAnalysisState): boolean;
   begin
     Result := (state.ProjectInfo.ParsedUnits.Count > 0);
  -  if Result then
  -    FProjectInfo := state.ProjectInfo;
   end; { TDLUIXUnitBrowser.CanHandle }
   
   end.
  
positive.code:   FUnitNames := TCollections.CreateList<string>;
  end;
  
  procedure TDLUIXUnitBrowser.BuildFrame(const frame: IDLUIXFrame);
  var
    unitInfo: TProjectIndexer.TUnitInfo;
  begin
    FUnitNames.Clear;
    for unitInfo in FProjectInfo.ParsedUnits do
      FUnitNames.Add(unitInfo.Name);
    FUnitNames.Sort;
  
    frame.CreateAction(CreateFilteredListAction('', FUnitNames, ''));
    frame.CreateAction(CreateOpenAnalyzerAction('Used &in', CreateUnitBrowser));
    frame.CreateAction(CreateOpenAnalyzerAction('Used &by', CreateUnitBrowser));
    frame.CreateAction(CreateNavigationAction('&Open', Default(TDLUIXLocation), false));
  
negative.code: type
    TDLUIXUnitBrowser = class(TManagedInterfacedObject, IDLUIXAnalyzer)
    strict private
      FUnitNames: IList<string>;
    public
      constructor Create;
      procedure BuildFrame(const frame: IDLUIXFrame; const state: TDLAnalysisState);
      function  CanHandle(const state: TDLAnalysisState): boolean;
    end; { TDLUIXNavigationAnalyzer }
  
  