public void Setup()

in src/dotnet/Rider.Plugins.EfCore/Tracking/SolutionTracker.cs [46:90]


    public void Setup()
    {
      _dotnetToolsTracker.DotNetToolCache.Change.Advise(_lifetime, args =>
      {
        if (!args.HasNew || args.New is null) return;
        using var _ = _lock.UsingWriteLock();

        var cache = args.New;

        _logger.LogFlow($"{nameof(SolutionDotnetToolsTracker)}.DotNetToolCache.Change",
          $"Calling {nameof(OnAfterToolsCacheUpdate)}");

        OnAfterToolsCacheUpdate?.Invoke(cache);
      });

      _nugetListener.ProjectsUpdated += () =>
      {
        _logger.LogFlow($"{nameof(NugetDependenciesListener)}.ProjectsUpdated",
          $"Calling {nameof(OnAfterNuGetUpdate)}");

        OnAfterNuGetUpdate?.Invoke();
      };

      _solutionLoadScheduler.EnqueueTask(
        new SolutionLoadTask(
          GetType(),
          SolutionLoadTaskKinds.AfterDone,
          () =>
          {
            _logger.LogFlow($"{nameof(ISolutionLoadTasksScheduler)}.AfterDone",
              $"Calling {nameof(OnAfterSolutionLoad)}");

            OnAfterSolutionLoad?.Invoke();

            _solutionListener.SolutionChanged += () =>
            {
              _logger.LogFlow($"{nameof(SolutionStructureChangedListener)}.SolutionChanged",
                $"Calling {nameof(OnAfterSolutionUpdate)}");

              OnAfterSolutionUpdate?.Invoke();
            };
          }
        )
      );
    }