Example #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;
 }
 public EventHandlerDetector(ISolution solution, IApplicationWideContextBoundSettingStore settingsStore,
                             UnityEventsElementContainer unityEventsElementContainer,
                             PerformanceCriticalContextProvider contextProvider)
     : base(solution, settingsStore, contextProvider)
 {
     UnityEventsElementContainer = unityEventsElementContainer;
 }
Example #3
0
 public UnityYamlSearchGuru(UnityApi unityApi, AssetScriptUsagesElementContainer assetScriptUsagesElementContainer,
                            UnityEventsElementContainer unityEventsElementContainer, AssetInspectorValuesContainer container)
 {
     myAssetScriptUsagesElementContainer = assetScriptUsagesElementContainer;
     myUnityEventsElementContainer       = unityEventsElementContainer;
     myInspectorValuesContainer          = container;
 }
 public EventHandlerDetector(ISolution solution, SettingsStore settingsStore,
                             CallGraphSwaExtensionProvider callGraphSwaExtension, UnityEventsElementContainer unityEventsElementContainer, PerformanceCriticalCodeCallGraphMarksProvider marksProvider, IElementIdProvider provider)
     : base(solution, callGraphSwaExtension, settingsStore, marksProvider, provider)
 {
     myCallGraphSwaExtension       = callGraphSwaExtension;
     myUnityEventsElementContainer = unityEventsElementContainer;
     myProvider = provider;
 }
Example #5
0
 public EventHandlerDetector(ISolution solution, IApplicationWideContextBoundSettingStore settingsStore,
                             CallGraphSwaExtensionProvider callGraphSwaExtension,
                             UnityEventsElementContainer unityEventsElementContainer,
                             PerformanceCriticalCodeCallGraphMarksProvider marksProvider,
                             IElementIdProvider provider)
     : base(solution, settingsStore, callGraphSwaExtension, marksProvider, provider)
 {
     UnityEventsElementContainer = unityEventsElementContainer;
 }
 public UnityAssetReferenceSearcher(DeferredCacheController deferredCacheController, AssetDocumentHierarchyElementContainer assetDocumentHierarchyElementContainer, AssetScriptUsagesElementContainer assetScriptUsagesElementContainer,
                                    UnityEventsElementContainer unityEventsElementContainer, AssetInspectorValuesContainer assetInspectorValuesContainer, MetaFileGuidCache metaFileGuidCache, IDeclaredElementsSet elements, bool findCandidates)
 {
     myDeferredCacheController = deferredCacheController;
     myAssetDocumentHierarchyElementContainer = assetDocumentHierarchyElementContainer;
     myAssetScriptUsagesElementContainer      = assetScriptUsagesElementContainer;
     myUnityEventsElementContainer            = unityEventsElementContainer;
     myAssetInspectorValuesContainer          = assetInspectorValuesContainer;
     myElements = elements;
 }
Example #7
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>();
 }
Example #8
0
 public UnityYamlSearchGuru(UnityApi unityApi,
                            [NotNull, ItemNotNull] IEnumerable <IScriptUsagesElementContainer> scriptsUsagesElementContainers,
                            UnityEventsElementContainer unityEventsElementContainer,
                            AnimationEventUsagesContainer animationEventUsagesContainer,
                            AssetInspectorValuesContainer container)
 {
     myScriptsUsagesElementContainers = scriptsUsagesElementContainers;
     myUnityEventsElementContainer    = unityEventsElementContainer;
     myAnimationEventUsagesContainer  = animationEventUsagesContainer;
     myInspectorValuesContainer       = container;
 }
        private void AddEventsHighlighting([NotNull] IHighlightingConsumer consumer,
                                           [NotNull] IDeclaration element,
                                           [NotNull] IconModel iconModel)
        {
            var declaredElement           = element.DeclaredElement;
            var eventsCount               = UnityEventsElementContainer.GetAssetUsagesCount(declaredElement, out var unityEventsEstimatedResult);
            var animationEventUsagesCount = myAnimationEventUsagesContainer
                                            .GetEventUsagesCountFor(declaredElement, out var animationEventsEstimatedResult);

            myUsagesCodeVisionProvider.AddHighlighting(consumer, element, declaredElement,
                                                       animationEventUsagesCount + eventsCount, "Click to view usages in assets", "Assets usages",
                                                       unityEventsEstimatedResult || animationEventsEstimatedResult, iconModel);
        }
 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;
 }
Example #11
0
        protected override void AddHighlighting(IHighlightingConsumer consumer, ICSharpDeclaration element, string text, string tooltip,
                                                DaemonProcessKind kind)
        {
            var iconId = element.HasHotIcon(CallGraphSwaExtensionProvider, SettingsStore.BoundSettingsStore,
                                            MarksProvider, kind, ElementIdProvider)
                ? InsightUnityIcons.InsightHot.Id
                : InsightUnityIcons.InsightUnity.Id;

            if (RiderIconProviderUtil.IsCodeVisionEnabled(SettingsStore.BoundSettingsStore, myCodeInsightProvider.ProviderId,
                                                          () => { base.AddHighlighting(consumer, element, text, tooltip, kind); }, out var useFallback))
            {
                if (!useFallback)
                {
                    consumer.AddImplicitConfigurableHighlighting(element);
                }

                IconModel iconModel = myIconHost.Transform(iconId);
                if (myAssetIndexingSupport.IsEnabled.Value && myAssetSerializationMode.IsForceText)
                {
                    if (myDeferredCacheController.IsProcessingFiles())
                    {
                        iconModel = myIconHost.Transform(CodeInsightsThemedIcons.InsightWait.Id);
                    }

                    if (!myDeferredCacheController.CompletedOnce.Value)
                    {
                        tooltip = "Usages in assets are not available during asset indexing";
                    }
                }

                if (!myAssetIndexingSupport.IsEnabled.Value || !myDeferredCacheController.CompletedOnce.Value || !myAssetSerializationMode.IsForceText)
                {
                    myCodeInsightProvider.AddHighlighting(consumer, element, element.DeclaredElement, text,
                                                          tooltip, text, iconModel, GetActions(element),
                                                          RiderIconProviderUtil.GetExtraActions(mySolutionTracker, myBackendUnityHost));
                }
                else
                {
                    var count = UnityEventsElementContainer.GetAssetUsagesCount(element.DeclaredElement, out var estimate);
                    myUsagesCodeVisionProvider.AddHighlighting(consumer, element, element.DeclaredElement, count,
                                                               "Click to view usages in assets", "Assets usages", estimate, iconModel);
                }
            }
        }
        public List <Dictionary <string, IAssetValue> > ImportUnityEventData(UnityEventsElementContainer elementContainer, JetHashSet <string> allUnityEventNames)
        {
            var result    = myScriptComponentHierarchy.ImportUnityEventData(elementContainer, allUnityEventNames);
            var patchData = GetImportedValuesForUnityEvent(Location, allUnityEventNames);

            var maxValue = patchData.Keys.Count == 0 ? 0 : patchData.Keys.Max();

            while (maxValue >= result.Count)
            {
                result.Add(new Dictionary <string, IAssetValue>());
            }

            foreach (var(i, patch) in patchData)
            {
                AssetUtils.Import(result[i], patch);
            }


            return(result);
        }
        public List <Dictionary <string, IAssetValue> > ImportUnityEventData(UnityEventsElementContainer elementContainer, JetHashSet <string> allUnityEventNames)
        {
            var unityEvents = elementContainer.GetUnityEventDataFor(Location, allUnityEventNames);

            var result = new List <Dictionary <string, IAssetValue> >();

            foreach (var unityEventData in unityEvents)
            {
                for (int i = 0; i < unityEventData.Calls.Count; i++)
                {
                    var dictionary = unityEventData.Calls[i].ToDictionary();
                    if (i < result.Count)
                    {
                        AssetUtils.Import(result[i], dictionary);
                    }
                    else
                    {
                        Assertion.Assert(result.Count == i, "result.Count == i");
                        result.Add(dictionary);
                    }
                }
            }
            return(result);
        }
 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;
 }