public RiderEventHandlerDetector(ISolution solution, IApplicationWideContextBoundSettingStore settingsStore, AssetIndexingSupport assetIndexingSupport, UnityEventsElementContainer unityEventsElementContainer, UnityCodeInsightProvider codeInsightProvider, UnityUsagesCodeVisionProvider usagesCodeVisionProvider, DeferredCacheController deferredCacheController, UnitySolutionTracker solutionTracker, BackendUnityHost backendUnityHost, IconHost iconHost, AssetSerializationMode assetSerializationMode, PerformanceCriticalContextProvider contextProvider, [NotNull] AnimationEventUsagesContainer animationEventUsagesContainer) : base(solution, settingsStore, unityEventsElementContainer, contextProvider, animationEventUsagesContainer) { myAssetIndexingSupport = assetIndexingSupport; myCodeInsightProvider = codeInsightProvider; myUsagesCodeVisionProvider = usagesCodeVisionProvider; myDeferredCacheController = deferredCacheController; mySolutionTracker = solutionTracker; myBackendUnityHost = backendUnityHost; myIconHost = iconHost; myAssetSerializationMode = assetSerializationMode; myAnimationEventUsagesContainer = animationEventUsagesContainer; }
// IconHost is optional so that we don't fail if we're in tests public UnityYamlExtraGroupingRulesProvider(UnitySceneProcessor sceneProcessor = null, UnitySolutionTracker unitySolutionTracker = null, IconHost iconHost = null) { if (unitySolutionTracker != null && unitySolutionTracker.IsUnityProject.HasValue() && unitySolutionTracker.IsUnityProject.Value && iconHost != null && sceneProcessor != null) { ExtraRules = new IRiderUsageGroupingRule[] { new GameObjectUsageGroupingRule(sceneProcessor, iconHost), new ComponentUsageGroupingRule(iconHost) }; } else { ExtraRules = new IRiderUsageGroupingRule[0]; } }
public ExpensiveCodeCallGraphAnalyzer(Lifetime lifetime, ISolution solution, UnitySolutionTracker unitySolutionTracker, ICallGraphAnalyzersProvider provider) : base(lifetime, provider, MarkId, new CalleeToCallerCallGraphPropagator(solution, MarkId)) { Enabled.Value = unitySolutionTracker.IsUnityProject.HasTrueValue(); }
public UnityUnitTestProjectArtifactResolverCollaborator(UnitySolutionTracker unitySolutionTracker) { myUnitySolutionTracker = unitySolutionTracker; }
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 UnityPencilsFilter(Lifetime lifetime, UnitySolutionTracker solutionTracker, UnityReferencesTracker referencesTracker, ISettingsStore store) : base("Unity", "Plugins", "Unity", "", solutionTracker.IsUnityProject.HasTrueValue(), store, s => s.EnablePerformanceCriticalCodeHighlighting) { referencesTracker.HasUnityReference.Advise(lifetime, b => IsVisible.Value = solutionTracker.IsUnityProject.HasTrueValue() || b); }
public GeneratedFileNotification(Lifetime lifetime, FrontendBackendHost frontendBackendHost, BackendUnityHost backendUnityHost, UnitySolutionTracker solutionTracker, ISolution solution, AsmDefNameCache asmDefNameCache, [CanBeNull] TextControlHost textControlHost = null, [CanBeNull] SolutionLifecycleHost solutionLifecycleHost = null, [CanBeNull] NotificationPanelHost notificationPanelHost = null) { if (solutionLifecycleHost == null) { return; } if (!solutionTracker.IsUnityGeneratedProject.Value) { return; } var fullStartupFinishedLifetimeDefinition = new LifetimeDefinition(lifetime); solutionLifecycleHost.FullStartupFinished.Advise(fullStartupFinishedLifetimeDefinition.Lifetime, _ => { textControlHost.ViewHostTextControls(lifetime, (lt, id, host) => { var projectFile = host.ToProjectFile(solution); if (projectFile == null) { return; } if (!projectFile.Location.ExtensionNoDot.Equals("csproj", StringComparison.OrdinalIgnoreCase)) { return; } backendUnityHost.BackendUnityModel.ViewNotNull(lt, (modelLifetime, backendUnityModel) => { var name = projectFile.Location.NameWithoutExtension; IPath path; using (ReadLockCookie.Create()) { path = asmDefNameCache.GetPathFor(name)?.TryMakeRelativeTo(solution.SolutionFilePath); } var elements = new LocalList <INotificationPanelHyperlink>(); if (path != null) { var strPath = path.Components.Join("/").RemoveStart("../"); elements.Add(new NotificationPanelCallbackHyperlink(modelLifetime, "Edit corresponding .asmdef in Unity", false, () => { frontendBackendHost.Do(t => { t.AllowSetForegroundWindow.Start(modelLifetime, Unit.Instance) .Result.AdviseOnce(modelLifetime, __ => { backendUnityHost.BackendUnityModel.Value?.ShowFileInUnity.Fire(strPath); }); }); })); } notificationPanelHost.AddNotificationPanel(modelLifetime, host, new NotificationPanel("This file is generated by Unity. Any changes made will be lost.", "UnityGeneratedFile", elements.ToArray())); }); }); fullStartupFinishedLifetimeDefinition.Terminate(); }); }
public VSPerformanceCriticalCodeAnalysisStage(SolutionAnalysisService swa, UnitySolutionTracker solutionTracker, CallGraphActivityTracker tracker, PerformanceCriticalCodeCallGraphAnalyzer performanceAnalyzer, ExpensiveCodeCallGraphAnalyzer expensiveAnalyzer) : base(swa, solutionTracker, tracker, performanceAnalyzer, expensiveAnalyzer) { }
public UnityUnitTestProjectArtifactResolverCollaborator(UnitySolutionTracker unitySolutionTracker, UnityNUnitServiceProvider serviceProvider) { myUnitySolutionTracker = unitySolutionTracker; myServiceProvider = serviceProvider; }
public UnityCodeInsightProvider(UnitySolutionTracker unitySolutionTracker, UnityHost host, BulbMenuComponent bulbMenu) : base(unitySolutionTracker, host, bulbMenu) { }
public NamespaceProviderProjectSettingsProvider(ISettingsSchema settingsSchema, ILogger logger, UnitySolutionTracker unitySolutionTracker) { mySettingsSchema = settingsSchema; myLogger = logger; myUnitySolutionTracker = unitySolutionTracker; }
public UnityCodeInsightProvider(UnityHost host, UnitySolutionTracker solutionTracker, BulbMenuComponent bulbMenu, UnitySolutionTracker tracker) : base(solutionTracker, host, bulbMenu) { RelativeOrderings = tracker.IsUnityProject.HasTrueValue() ? new CodeLensRelativeOrdering[] { new CodeLensRelativeOrderingBefore(ReferencesCodeInsightsProvider.Id) } : new CodeLensRelativeOrdering[] { new CodeLensRelativeOrderingLast() }; }
public UnityProjectTypeLogContributor(UnitySolutionTracker unitySolutionTracker, UnityReferencesTracker unityReferencesTracker) { myUnitySolutionTracker = unitySolutionTracker; myUnityReferencesTracker = unityReferencesTracker; }
public PerformanceCriticalCodeCallGraphAnalyzer(Lifetime lifetime, ISolution solution, UnitySolutionTracker tracker, ICallGraphAnalyzersProvider provider) : base(lifetime, provider, MarkId, new CallerToCalleeCallGraphPropagator(solution, MarkId)) { Enabled.Value = tracker.IsUnityProject.HasTrueValue(); }
public UnityYamlFileSizeLogContributor(UnitySolutionTracker unitySolutionTracker, AssetIndexingSupport assetIndexingSupport, UnityExternalFilesModuleProcessor moduleProcessor) { myUnitySolutionTracker = unitySolutionTracker; myAssetIndexingSupport = assetIndexingSupport; myModuleProcessor = moduleProcessor; }
public PerformanceCriticalCodeCallGraphAnalyzer(Lifetime lifetime, ISolution solution, UnityApi unityApi, UnityReferencesTracker referencesTracker, UnitySolutionTracker tracker) : base(MarkId, new CallerToCalleeCallGraphPropagator(solution, MarkId)) { myUnityApi = unityApi; Enabled.Value = tracker.IsUnityProject.HasTrueValue(); referencesTracker.HasUnityReference.Advise(lifetime, b => Enabled.Value = Enabled.Value | b); }
// IconHost is optional so that we don't fail if we're in tests public UnityYamlExtraGroupingRulesProvider(MetaFileGuidCache metaFileGuidCache = null, UnitySolutionTracker unitySolutionTracker = null, IconHost iconHost = null) { if (unitySolutionTracker != null && unitySolutionTracker.IsUnityProject.HasValue() && unitySolutionTracker.IsUnityProject.Value && iconHost != null && metaFileGuidCache != null) { ExtraRules = new IRiderUsageGroupingRule[] { new GameObjectUsageGroupingRule(iconHost), new ComponentUsageGroupingRule(metaFileGuidCache, iconHost) }; } else { ExtraRules = new IRiderUsageGroupingRule[0]; } }
public PerformanceCriticalCodeMarksProvider(Lifetime lifetime, ISolution solution, UnityReferencesTracker referencesTracker, UnitySolutionTracker tracker) : base(MarkId, new CallGraphOutcomingPropagator(solution, MarkId)) { Enabled.Value = tracker.IsUnityProject.HasTrueValue(); referencesTracker.HasUnityReference.Advise(lifetime, b => Enabled.Value = Enabled.Value | b); }
public UnityShaderPsiModuleProviderFilter(UnitySolutionTracker solutionTracker) { mySolutionTracker = solutionTracker; }
protected AbstractUnityCodeInsightProvider(UnitySolutionTracker unitySolutionTracker, UnityHost host, BulbMenuComponent bulbMenu) { myUnitySolutionTracker = unitySolutionTracker; myHost = host; myBulbMenu = bulbMenu; }
public UnityPencilsFilterProvider(UnitySolutionTracker solutionTracker, UnityReferencesTracker referencesTracker) { mySolutionTracker = solutionTracker; myReferencesTracker = referencesTracker; }