コード例 #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;
 }
コード例 #2
0
 private static void AdviseModel(Lifetime lifetime,
                                 FrontendBackendModel frontendBackendModel,
                                 PackageManager packageManager,
                                 DeferredCacheController deferredCacheController,
                                 IThreading shellLocks)
 {
     AdvisePackages(lifetime, frontendBackendModel, packageManager);
     AdviseIntegrationTestHelpers(lifetime, frontendBackendModel, deferredCacheController, shellLocks);
 }
コード例 #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>();
 }
コード例 #4
0
 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;
 }
コード例 #5
0
 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; });
         }
     });
 }
コード例 #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;
 }
コード例 #7
0
        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;
        }
コード例 #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;
 }
コード例 #9
0
 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;
 }
コード例 #10
0
 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;
 }
コード例 #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);
                                });
                            });
                        }
                    });
                });
            }
        }
コード例 #12
0
 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;
 }
コード例 #14
0
 // 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;
 }
コード例 #15
0
 public RiderUnityUsagesNotification(UnityHost unityHost, DeferredCacheController controller)
     : base(controller)
 {
     myUnityHost = unityHost;
 }
コード例 #16
0
 public RiderUnityUsagesNotification(FrontendBackendHost frontendBackendHost, DeferredCacheController controller)
     : base(controller)
 {
     myFrontendBackendHost = frontendBackendHost;
 }
コード例 #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; });
                }
            });
        }
コード例 #18
0
 public UnityHostStub(Lifetime lifetime, ISolution solution, IShellLocks shellLocks, DeferredCacheController deferredCacheController) : base(lifetime, solution, shellLocks, deferredCacheController, true)
 {
 }
コード例 #19
0
 public FrontendBackendHostStub(Lifetime lifetime, ISolution solution, IShellLocks shellLocks,
                                PackageManager packageManager,
                                DeferredCacheController deferredCacheController)
     : base(lifetime, solution, shellLocks, packageManager, deferredCacheController, true)
 {
 }