public EventHandlerDetector(ISolution solution, SolutionAnalysisService swa, SettingsStore settingsStore,
                             CallGraphSwaExtensionProvider callGraphSwaExtension, UnityEventHandlerReferenceCache cache, PerformanceCriticalCodeCallGraphAnalyzer analyzer)
     : base(solution, swa, callGraphSwaExtension, settingsStore, analyzer)
 {
     myCallGraphSwaExtension = callGraphSwaExtension;
     myCache = cache;
 }
Пример #2
0
 public UnityEventHandlerDetector([NotNull] UnityApi unityApi, UnityEventHandlerReferenceCache cache,
                                  UnityImplicitUsageHighlightingContributor implicitUsageHighlightingContributor)
     : base(unityApi)
 {
     myCache = cache;
     myImplicitUsageHighlightingContributor = implicitUsageHighlightingContributor;
 }
Пример #3
0
        public RiderUnityHighlightingContributor(Lifetime lifetime, ISolution solution, ITextControlManager textControlManager,
                                                 UnityCodeInsightFieldUsageProvider fieldUsageProvider, UnityCodeInsightProvider codeInsightProvider,
                                                 ISettingsStore settingsStore, ConnectionTracker connectionTracker, SolutionAnalysisService swa, IShellLocks locks,
                                                 PerformanceCriticalCodeCallGraphAnalyzer analyzer, UnitySolutionTracker solutionTracker, UnityApi unityApi,
                                                 UnityEventHandlerReferenceCache handlerReferenceCache, IconHost iconHost = null)
            : base(solution, settingsStore, textControlManager, swa, analyzer)
        {
            myFieldUsageProvider    = fieldUsageProvider;
            myCodeInsightProvider   = codeInsightProvider;
            myConnectionTracker     = connectionTracker;
            mySolutionTracker       = solutionTracker;
            myUnityApi              = unityApi;
            myHandlerReferenceCache = handlerReferenceCache;
            myIconHost              = iconHost;
            var invalidateDaemonResultGroupingEvent = locks.GroupingEvents.CreateEvent(lifetime,
                                                                                       "UnityHiglightingContributor::InvalidateDaemonResults", TimeSpan.FromSeconds(5), Rgc.Guarded,
                                                                                       () =>
            {
                solution.GetComponent <IDaemon>().Invalidate();
            });

            myConnectionTracker.State.Change.Advise_HasNew(lifetime, value =>
            {
                var old  = value.HasOld ? value.Old : UnityEditorState.Disconnected;
                var @new = value.New;

                // disconnect -> ??? -> disconnect is rarely case, we do not check it
                // connected -> ??? -> connected is the most important case
                if (old != UnityEditorState.Disconnected && @new != UnityEditorState.Disconnected)
                {
                    invalidateDaemonResultGroupingEvent.CancelIncoming();
                }
                else if (old == UnityEditorState.Disconnected && @new != UnityEditorState.Disconnected ||
                         @new == UnityEditorState.Disconnected && old != UnityEditorState.Disconnected)
                {
                    invalidateDaemonResultGroupingEvent.FireIncoming();
                }
            });
        }
 public RiderEventHandlerDetector(ISolution solution, SolutionAnalysisService swa, CallGraphSwaExtensionProvider callGraphSwaExtensionProvider,
                                  SettingsStore settingsStore, PerformanceCriticalCodeCallGraphAnalyzer analyzer, UnityEventHandlerReferenceCache cache,
                                  UnityCodeInsightProvider codeInsightProvider,
                                  UnitySolutionTracker solutionTracker, ConnectionTracker connectionTracker,
                                  IconHost iconHost)
     : base(solution, swa, settingsStore, callGraphSwaExtensionProvider, cache, analyzer)
 {
     myCodeInsightProvider = codeInsightProvider;
     mySolutionTracker     = solutionTracker;
     myConnectionTracker   = connectionTracker;
     myIconHost            = iconHost;
 }