Exemple #1
0
 public RiderEventHandlerDetector(ISolution solution,
                                  CallGraphSwaExtensionProvider callGraphSwaExtensionProvider,
                                  IApplicationWideContextBoundSettingStore settingsStore,
                                  AssetIndexingSupport assetIndexingSupport,
                                  PerformanceCriticalCodeCallGraphMarksProvider marksProvider,
                                  UnityEventsElementContainer unityEventsElementContainer,
                                  UnityCodeInsightProvider codeInsightProvider,
                                  UnityUsagesCodeVisionProvider usagesCodeVisionProvider,
                                  DeferredCacheController deferredCacheController,
                                  UnitySolutionTracker solutionTracker,
                                  BackendUnityHost backendUnityHost,
                                  IconHost iconHost, AssetSerializationMode assetSerializationMode,
                                  IElementIdProvider elementIdProvider)
     : base(solution, settingsStore, callGraphSwaExtensionProvider, unityEventsElementContainer, marksProvider,
            elementIdProvider)
 {
     myAssetIndexingSupport     = assetIndexingSupport;
     myCodeInsightProvider      = codeInsightProvider;
     myUsagesCodeVisionProvider = usagesCodeVisionProvider;
     myDeferredCacheController  = deferredCacheController;
     mySolutionTracker          = solutionTracker;
     myBackendUnityHost         = backendUnityHost;
     myIconHost = iconHost;
     myAssetSerializationMode = assetSerializationMode;
 }
 private static void AdviseModel(Lifetime lifetime,
                                 FrontendBackendModel frontendBackendModel,
                                 PackageManager packageManager,
                                 DeferredCacheController deferredCacheController,
                                 IThreading shellLocks)
 {
     AdvisePackages(lifetime, frontendBackendModel, packageManager);
     AdviseIntegrationTestHelpers(lifetime, frontendBackendModel, deferredCacheController, shellLocks);
 }
Exemple #3
0
 public UnityCodeInsightFieldUsageProvider(UnitySolutionTracker unitySolutionTracker, UnityHost host, BulbMenuComponent bulbMenu, DeferredCacheController deferredCacheController,
                                           AssetInspectorValuesContainer inspectorValuesContainer, UnityEventsElementContainer unityEventsElementContainer)
     : base(unitySolutionTracker, host, bulbMenu)
 {
     myDeferredCacheController     = deferredCacheController;
     myInspectorValuesContainer    = inspectorValuesContainer;
     myUnityEventsElementContainer = unityEventsElementContainer;
     myActionManager = Shell.Instance.GetComponent <IActionManager>();
     myContexts      = Shell.Instance.GetComponent <DataContexts>();
 }
 public UnityAssetReferenceSearcher(DeferredCacheController deferredCacheController, AssetDocumentHierarchyElementContainer assetDocumentHierarchyElementContainer, AssetUsagesElementContainer assetUsagesElementContainer,
                                    AssetMethodsElementContainer assetMethodsElementContainer, AssetInspectorValuesContainer assetInspectorValuesContainer, MetaFileGuidCache metaFileGuidCache, IDeclaredElementsSet elements, bool findCandidates)
 {
     myDeferredCacheController = deferredCacheController;
     myAssetDocumentHierarchyElementContainer = assetDocumentHierarchyElementContainer;
     myAssetUsagesElementContainer            = assetUsagesElementContainer;
     myAssetMethodsElementContainer           = assetMethodsElementContainer;
     myAssetInspectorValuesContainer          = assetInspectorValuesContainer;
     myElements = elements;
 }
 private static void AdviseModel(Lifetime lifetime, FrontendBackendModel frontendBackendModel,
                                 DeferredCacheController deferredCacheController, IThreading shellLocks)
 {
     deferredCacheController.CompletedOnce.Advise(lifetime, v =>
     {
         if (v)
         {
             shellLocks.Tasks.StartNew(lifetime, Scheduling.MainDispatcher,
                                       () => { frontendBackendModel.IsDeferredCachesCompletedOnce.Value = true; });
         }
     });
 }
Exemple #6
0
 public RiderFieldDetector(ISolution solution, CallGraphSwaExtensionProvider callGraphSwaExtensionProvider,
                           SettingsStore settingsStore, PerformanceCriticalCodeCallGraphMarksProvider marksProvider, UnityApi unityApi,
                           UnityCodeInsightFieldUsageProvider fieldUsageProvider, DeferredCacheController deferredCacheController,
                           UnitySolutionTracker solutionTracker, ConnectionTracker connectionTracker,
                           IconHost iconHost, AssetSerializationMode assetSerializationMode, IElementIdProvider provider)
     : base(solution, callGraphSwaExtensionProvider, settingsStore, marksProvider, unityApi, provider)
 {
     myFieldUsageProvider      = fieldUsageProvider;
     myDeferredCacheController = deferredCacheController;
     mySolutionTracker         = solutionTracker;
     myConnectionTracker       = connectionTracker;
     myIconHost = iconHost;
     myAssetSerializationMode = assetSerializationMode;
 }
        public FrontendBackendHost(Lifetime lifetime, ISolution solution, IShellLocks shellLocks,
                                   DeferredCacheController deferredCacheController, bool isInTests = false)
        {
            myIsInTests = isInTests;
            if (myIsInTests)
            {
                return;
            }

            // This will throw in tests, as GetProtocolSolution will return null
            var model = solution.GetProtocolSolution().GetFrontendBackendModel();

            AdviseModel(lifetime, model, deferredCacheController, shellLocks);
            Model = model;
        }
Exemple #8
0
 public RiderTypeDetector(ISolution solution, CallGraphSwaExtensionProvider callGraphSwaExtensionProvider,
                          SettingsStore settingsStore, PerformanceCriticalCodeCallGraphMarksProvider marksProvider, UnityApi unityApi,
                          AssetIndexingSupport assetIndexingSupport, UnityUsagesCodeVisionProvider usagesCodeVisionProvider, UnityCodeInsightProvider codeInsightProvider, AssetUsagesElementContainer assetUsagesElementContainer,
                          DeferredCacheController deferredCacheController, UnitySolutionTracker solutionTracker, ConnectionTracker connectionTracker,
                          IconHost iconHost, AssetSerializationMode assetSerializationMode, IElementIdProvider provider)
     : base(solution, callGraphSwaExtensionProvider, settingsStore, unityApi, marksProvider, provider)
 {
     myAssetIndexingSupport        = assetIndexingSupport;
     myUsagesCodeVisionProvider    = usagesCodeVisionProvider;
     myCodeInsightProvider         = codeInsightProvider;
     myAssetUsagesElementContainer = assetUsagesElementContainer;
     myDeferredCacheController     = deferredCacheController;
     mySolutionTracker             = solutionTracker;
     myConnectionTracker           = connectionTracker;
     myIconHost = iconHost;
     myAssetSerializationMode = assetSerializationMode;
 }
 public UnityAssetReferenceSearcher(DeferredCacheController deferredCacheController,
                                    AssetDocumentHierarchyElementContainer assetDocumentHierarchyElementContainer,
                                    [NotNull, ItemNotNull] IEnumerable <IScriptUsagesElementContainer> scriptsUsagesElementContainers,
                                    UnityEventsElementContainer unityEventsElementContainer,
                                    [NotNull] AnimationEventUsagesContainer animationEventUsagesContainer,
                                    AssetInspectorValuesContainer assetInspectorValuesContainer,
                                    MetaFileGuidCache metaFileGuidCache,
                                    IDeclaredElementsSet elements,
                                    bool findCandidates)
 {
     myDeferredCacheController = deferredCacheController;
     myAssetDocumentHierarchyElementContainer = assetDocumentHierarchyElementContainer;
     myScriptsUsagesElementContainers         = scriptsUsagesElementContainers;
     myUnityEventsElementContainer            = unityEventsElementContainer;
     myAnimationEventUsagesContainer          = animationEventUsagesContainer;
     myAssetInspectorValuesContainer          = assetInspectorValuesContainer;
     myElements = elements;
 }
 public RiderFieldDetector(ISolution solution,
                           IApplicationWideContextBoundSettingStore settingsStore,
                           UnityApi unityApi,
                           UnityCodeInsightFieldUsageProvider fieldUsageProvider,
                           DeferredCacheController deferredCacheController,
                           UnitySolutionTracker solutionTracker,
                           BackendUnityHost backendUnityHost,
                           IconHost iconHost, AssetSerializationMode assetSerializationMode,
                           PerformanceCriticalContextProvider contextProvider)
     : base(solution, settingsStore, unityApi, contextProvider)
 {
     myFieldUsageProvider      = fieldUsageProvider;
     myDeferredCacheController = deferredCacheController;
     mySolutionTracker         = solutionTracker;
     myBackendUnityHost        = backendUnityHost;
     myIconHost = iconHost;
     myAssetSerializationMode = assetSerializationMode;
 }
Exemple #11
0
        public UnityCacheUpdater(Lifetime lifetime, ISolution solution, DeferredCacheController deferredCacheController, AssetIndexingSupport assetIndexingSupport, IShellLocks locks, ChangeManager changeManager, UnityExternalFilesModuleFactory factory)
        {
            var module = factory.PsiModule;

            if (module != null)
            {
                assetIndexingSupport.IsEnabled.Change.Advise_NoAcknowledgement(lifetime, (handler) =>
                {
                    if (handler.HasNew && handler.HasOld && handler.New == handler.Old)
                    {
                        return;
                    }

                    locks.ExecuteOrQueueReadLockEx(lifetime, "YamlParsingStateChange", () =>
                    {
                        var psiSourceFiles = module.SourceFiles.ToList();
                        if (psiSourceFiles.Any())
                        {
                            locks.ExecuteWithWriteLock(() =>
                            {
                                deferredCacheController.Invalidate <UnityAssetCache>();
                                changeManager.ExecuteAfterChange(() =>
                                {
                                    var changeBuilder = new PsiModuleChangeBuilder();
                                    foreach (var sourceFile in psiSourceFiles)
                                    {
                                        if (sourceFile.IsValid())
                                        {
                                            changeBuilder.AddFileChange(sourceFile, PsiModuleChange.ChangeType.Modified);
                                        }
                                    }

                                    changeManager.OnProviderChanged(solution, changeBuilder.Result,
                                                                    SimpleTaskExecutor.Instance);
                                });
                            });
                        }
                    });
                });
            }
        }
 public RiderTypeDetector(ISolution solution,
                          IApplicationWideContextBoundSettingStore settingsStore,
                          UnityApi unityApi,
                          AssetIndexingSupport assetIndexingSupport,
                          UnityUsagesCodeVisionProvider usagesCodeVisionProvider,
                          UnityCodeInsightProvider codeInsightProvider,
                          AssetScriptUsagesElementContainer assetScriptUsagesElementContainer,
                          DeferredCacheController deferredCacheController, UnitySolutionTracker solutionTracker,
                          BackendUnityHost backendUnityHost,
                          IconHost iconHost, AssetSerializationMode assetSerializationMode,
                          PerformanceCriticalContextProvider contextProvider)
     : base(solution, settingsStore, unityApi, contextProvider)
 {
     myAssetIndexingSupport              = assetIndexingSupport;
     myUsagesCodeVisionProvider          = usagesCodeVisionProvider;
     myCodeInsightProvider               = codeInsightProvider;
     myAssetScriptUsagesElementContainer = assetScriptUsagesElementContainer;
     myDeferredCacheController           = deferredCacheController;
     mySolutionTracker        = solutionTracker;
     myBackendUnityHost       = backendUnityHost;
     myIconHost               = iconHost;
     myAssetSerializationMode = assetSerializationMode;
 }
 public UnityUsagesDeferredCachesNotification(DeferredCacheController controller)
 {
     myController = controller;
 }
 // Scenarios:
 // 1. Unity is not connected - show confirmation prompt
 // 2. Unity plugin is not installed - show confirmation + save prompt
 // 3. Unity is connected with unmodified scene(s) - show confirmation prompt (with checkbox)
 // 4. Unity is connected with modified scene(s) - show confirmation + save prompt and block until scenes are
 //    saved + documents committed
 //
 // We can't tell the difference between plugin not connected and not installed. Can't risk overwriting unsaved
 // open scenes, so we always show a confirmation prompt
 public UnityEventTargetRefactoringPage(Lifetime lifetime, DeferredCacheController deferredCacheController)
     : base(lifetime)
 {
     myDeferredCacheController = deferredCacheController;
 }
 public RiderUnityUsagesNotification(UnityHost unityHost, DeferredCacheController controller)
     : base(controller)
 {
     myUnityHost = unityHost;
 }
Exemple #16
0
 public RiderUnityUsagesNotification(FrontendBackendHost frontendBackendHost, DeferredCacheController controller)
     : base(controller)
 {
     myFrontendBackendHost = frontendBackendHost;
 }
Exemple #17
0
        public UnityHost(Lifetime lifetime, ISolution solution, IShellLocks shellLocks, DeferredCacheController deferredCacheController, bool isInTests = false)
        {
            myIsInTests = isInTests;
            if (myIsInTests)
            {
                return;
            }

            myModel = solution.GetProtocolSolution().GetRdUnityModel();
            deferredCacheController.CompletedOnce.Advise(lifetime, v =>
            {
                if (v)
                {
                    shellLocks.Tasks.StartNew(lifetime, Scheduling.MainDispatcher,
                                              () => { myModel.IsDeferredCachesCompletedOnce.Value = true; });
                }
            });
        }
 public UnityHostStub(Lifetime lifetime, ISolution solution, IShellLocks shellLocks, DeferredCacheController deferredCacheController) : base(lifetime, solution, shellLocks, deferredCacheController, true)
 {
 }
 public FrontendBackendHostStub(Lifetime lifetime, ISolution solution, IShellLocks shellLocks,
                                PackageManager packageManager,
                                DeferredCacheController deferredCacheController)
     : base(lifetime, solution, shellLocks, packageManager, deferredCacheController, true)
 {
 }