Ejemplo n.º 1
0
 public TypeDetector(ISolution solution, CallGraphSwaExtensionProvider callGraphSwaExtensionProvider,
                     IApplicationWideContextBoundSettingStore settingsStore, UnityApi unityApi,
                     PerformanceCriticalCodeCallGraphMarksProvider marksProvider, IElementIdProvider provider)
     : base(solution, settingsStore, callGraphSwaExtensionProvider, marksProvider, provider)
 {
     myUnityApi = unityApi;
 }
Ejemplo n.º 2
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, SolutionAnalysisService swa, SettingsStore settingsStore,
                             CallGraphSwaExtensionProvider callGraphSwaExtension, UnityEventHandlerReferenceCache cache, PerformanceCriticalCodeCallGraphAnalyzer analyzer)
     : base(solution, swa, callGraphSwaExtension, settingsStore, analyzer)
 {
     myCallGraphSwaExtension = callGraphSwaExtension;
     myCache = cache;
 }
        public UnityHighlightingProcess([NotNull] IDaemonProcess process, [NotNull] ICSharpFile file,
                                        CallGraphSwaExtensionProvider callGraphSwaExtensionProvider,
                                        PerformanceCriticalCodeCallGraphMarksProvider performanceCriticalCodeCallGraphMarksProvider,
                                        bool isPerformanceAnalysisEnabled,
                                        CallGraphBurstMarksProvider callGraphBurstMarksProvider, bool isBurstAnalysisEnabled,
                                        IEnumerable <IUnityDeclarationHighlightingProvider> declarationHighlightingProviders,
                                        IEnumerable <IUnityProblemAnalyzer> performanceProblemAnalyzers, UnityApi api,
                                        UnityCommonIconProvider commonIconProvider,
                                        DaemonProcessKind processKind, IElementIdProvider provider,
                                        ILogger logger)
            : base(process, file)
        {
            myCallGraphSwaExtensionProvider = callGraphSwaExtensionProvider;
            myPerformanceCriticalCodeCallGraphMarksProvider = performanceCriticalCodeCallGraphMarksProvider;
            myIsPerformanceAnalysisEnabled     = isPerformanceAnalysisEnabled;
            myCallGraphBurstMarksProvider      = callGraphBurstMarksProvider;
            myIsBurstAnalysisEnabled           = isBurstAnalysisEnabled;
            myDeclarationHighlightingProviders = declarationHighlightingProviders;
            myPerformanceProblemAnalyzers      = performanceProblemAnalyzers;
            myAPI = api;
            myCommonIconProvider = commonIconProvider;
            myProcessKind        = processKind;
            myProvider           = provider;
            myLogger             = logger;

            myEventFunctions = DaemonProcess.CustomData.GetData(UnityEventFunctionAnalyzer.UnityEventFunctionNodeKey)
                               ?.Where(t => t != null && t.IsValid()).ToJetHashSet();

            DaemonProcess.CustomData.PutData(UnityEventFunctionAnalyzer.UnityEventFunctionNodeKey, myEventFunctions);

            myProblemAnalyzersByContext = myPerformanceProblemAnalyzers.GroupBy(t => t.Context)
                                          .ToDictionary(t => t.Key, t => t.ToList());
        }
        public static bool HasHotIcon(this IDeclaredElement element, SolutionAnalysisService swa,
                                      CallGraphSwaExtensionProvider callGraphSwaExtensionProvider, IContextBoundSettingsStore settingsStore,
                                      PerformanceCriticalCodeCallGraphAnalyzer analyzer, DaemonProcessKind kind)
        {
            if (!settingsStore.GetValue((UnitySettings key) => key.EnableIconsForPerformanceCriticalCode))
            {
                return(false);
            }

            if (!settingsStore.GetValue((UnitySettings key) => key.EnablePerformanceCriticalCodeHighlighting))
            {
                return(false);
            }

            var usageChecker = swa.UsageChecker;

            if (usageChecker == null)
            {
                return(false);
            }

            var id = swa.GetElementId(element, true);

            if (!id.HasValue)
            {
                return(false);
            }

            return(callGraphSwaExtensionProvider.IsMarkedByCallGraphAnalyzer(analyzer.Id, id.Value,
                                                                             kind == DaemonProcessKind.GLOBAL_WARNINGS));
        }
 protected CallGraphContextProviderBase(IElementIdProvider elementIdProvider,
                                        CallGraphSwaExtensionProvider callGraphSwaExtensionProvider,
                                        CallGraphRootMarksProviderBase marksProviderBase)
 {
     myElementIdProvider             = elementIdProvider;
     myCallGraphSwaExtensionProvider = callGraphSwaExtensionProvider;
     myMarksProviderBase             = marksProviderBase;
 }
Ejemplo n.º 7
0
 public InitialiseOnLoadCctorDetector(ISolution solution,
                                      CallGraphSwaExtensionProvider callGraphSwaExtensionProvider,
                                      IApplicationWideContextBoundSettingStore settingsStore,
                                      PerformanceCriticalCodeCallGraphMarksProvider marksProvider,
                                      IElementIdProvider provider)
     : base(solution, settingsStore, callGraphSwaExtensionProvider, marksProvider, provider)
 {
 }
Ejemplo n.º 8
0
 public ExpensiveInvocationAnalyzer(CallGraphSwaExtensionProvider callGraphSwaExtensionProvider,
                                    ExpensiveCodeCallGraphAnalyzer expensiveCodeCallGraphAnalyzer,
                                    IElementIdProvider provider)
 {
     mySwaExtensionProvider           = callGraphSwaExtensionProvider;
     myExpensiveCodeCallGraphAnalyzer = expensiveCodeCallGraphAnalyzer;
     myProvider = provider;
 }
 public CallGraphLocalStage(
     CallGraphSwaExtensionProvider swaExtensionProvider,
     IEnumerable <ICallGraphContextProvider> contextProviders,
     IEnumerable <ICallGraphProblemAnalyzer> problemAnalyzers,
     ILogger logger)
     : base(swaExtensionProvider, contextProviders, problemAnalyzers, logger)
 {
 }
Ejemplo n.º 10
0
 public EventHandlerDetector(ISolution solution, SettingsStore settingsStore,
                             CallGraphSwaExtensionProvider callGraphSwaExtension, AssetMethodsElementContainer assetMethodsElementContainer, PerformanceCriticalCodeCallGraphMarksProvider marksProvider, IElementIdProvider provider)
     : base(solution, callGraphSwaExtension, settingsStore, marksProvider, provider)
 {
     myCallGraphSwaExtension        = callGraphSwaExtension;
     myAssetMethodsElementContainer = assetMethodsElementContainer;
     myProvider = provider;
 }
Ejemplo n.º 11
0
 public UnityHighlightingStage(CallGraphSwaExtensionProvider callGraphSwaExtensionProvider,
                               PerformanceCriticalCodeCallGraphMarksProvider performanceCriticalCodeCallGraphMarksProvider,
                               IEnumerable <IUnityDeclarationHighlightingProvider> higlightingProviders,
                               IEnumerable <IUnityProblemAnalyzer> performanceProblemAnalyzers,
                               UnityApi api, UnityCommonIconProvider commonIconProvider, IElementIdProvider provider, ILogger logger)
     : base(callGraphSwaExtensionProvider, performanceCriticalCodeCallGraphMarksProvider,
            higlightingProviders, performanceProblemAnalyzers, api, commonIconProvider, provider, logger)
 {
 }
 public UnityDeclarationHighlightingProviderBase(ISolution solution, SolutionAnalysisService swa, CallGraphSwaExtensionProvider callGraphSwaExtensionProvider,
                                                 SettingsStore settingsStore, PerformanceCriticalCodeCallGraphAnalyzer analyzer)
 {
     Solution = solution;
     Swa      = swa;
     CallGraphSwaExtensionProvider = callGraphSwaExtensionProvider;
     Analyzer = analyzer;
     Settings = settingsStore.BindToContextTransient(ContextRange.Smart(solution.ToDataContext()));
 }
Ejemplo n.º 13
0
 public UnityDeclarationHighlightingProviderBase(ISolution solution, CallGraphSwaExtensionProvider callGraphSwaExtensionProvider,
                                                 SettingsStore settingsStore, PerformanceCriticalCodeCallGraphMarksProvider marksProvider, IElementIdProvider provider)
 {
     Solution = solution;
     CallGraphSwaExtensionProvider = callGraphSwaExtensionProvider;
     MarksProvider = marksProvider;
     Settings      = settingsStore.BindToContextTransient(ContextRange.Smart(solution.ToDataContext()));
     myProvider    = provider;
 }
Ejemplo n.º 14
0
 public EventHandlerDetector(ISolution solution, IApplicationWideContextBoundSettingStore settingsStore,
                             CallGraphSwaExtensionProvider callGraphSwaExtension,
                             UnityEventsElementContainer unityEventsElementContainer,
                             PerformanceCriticalCodeCallGraphMarksProvider marksProvider,
                             IElementIdProvider provider)
     : base(solution, settingsStore, callGraphSwaExtension, marksProvider, provider)
 {
     UnityEventsElementContainer = unityEventsElementContainer;
 }
Ejemplo n.º 15
0
 public PerformanceCriticalContextProvider(
     Lifetime lifetime,
     IElementIdProvider elementIdProvider,
     IApplicationWideContextBoundSettingStore applicationWideContextBoundSettingStore,
     CallGraphSwaExtensionProvider callGraphSwaExtensionProvider,
     PerformanceCriticalCodeMarksProvider marksProvider)
     : base(lifetime, elementIdProvider, applicationWideContextBoundSettingStore, callGraphSwaExtensionProvider,
            marksProvider, PerformanceCriticalCodeMarksProvider.MarkId)
 {
 }
 public ExpensiveInvocationContextProvider(
     Lifetime lifetime,
     IApplicationWideContextBoundSettingStore applicationWideContextBoundSettingStore,
     IElementIdProvider elementIdProvider,
     CallGraphSwaExtensionProvider callGraphSwaExtensionProvider,
     ExpensiveCodeMarksProvider marksProviderBase)
     : base(lifetime, elementIdProvider, applicationWideContextBoundSettingStore, callGraphSwaExtensionProvider,
            marksProviderBase, ExpensiveCodeMarksProvider.MarkId)
 {
 }
Ejemplo n.º 17
0
 public UnityCommonIconProvider(ISolution solution, SolutionAnalysisService swa, CallGraphSwaExtensionProvider callGraphSwaExtensionProvider,
                                SettingsStore settingsStore, PerformanceCriticalCodeCallGraphAnalyzer analyzer, UnityApi unityApi)
 {
     Solution = solution;
     Swa      = swa;
     CallGraphSwaExtensionProvider = callGraphSwaExtensionProvider;
     Analyzer = analyzer;
     UnityApi = unityApi;
     Settings = settingsStore.BindToContextTransient(ContextRange.Smart(solution.ToDataContext()));
 }
 public RiderUnityCommonIconProvider(ISolution solution, CallGraphSwaExtensionProvider callGraphSwaExtensionProvider,
                                     SettingsStore settingsStore, PerformanceCriticalCodeCallGraphMarksProvider marksProvider, UnityApi api, UnityCodeInsightProvider codeInsightProvider,
                                     UnitySolutionTracker solutionTracker, ConnectionTracker connectionTracker, IconHost iconHost, IElementIdProvider provider)
     : base(solution, callGraphSwaExtensionProvider, settingsStore, marksProvider, api, provider)
 {
     myCodeInsightProvider = codeInsightProvider;
     mySolutionTracker     = solutionTracker;
     myConnectionTracker   = connectionTracker;
     myIconHost            = iconHost;
     myProvider            = provider;
 }
Ejemplo n.º 19
0
 protected CallGraphAbstractStage(
     CallGraphSwaExtensionProvider swaExtensionProvider,
     IEnumerable <ICallGraphContextProvider> contextProviders,
     IEnumerable <ICallGraphProblemAnalyzer> problemAnalyzers,
     ILogger logger)
 {
     mySwaExtensionProvider = swaExtensionProvider;
     myContextProviders     = contextProviders;
     myProblemAnalyzers     = problemAnalyzers;
     myLogger = logger;
 }
Ejemplo n.º 20
0
 protected UnityDeclarationHighlightingProviderBase(ISolution solution,
                                                    IApplicationWideContextBoundSettingStore settingsStore,
                                                    CallGraphSwaExtensionProvider callGraphSwaExtensionProvider,
                                                    PerformanceCriticalCodeCallGraphMarksProvider marksProvider,
                                                    IElementIdProvider provider)
 {
     Solution = solution;
     CallGraphSwaExtensionProvider = callGraphSwaExtensionProvider;
     MarksProvider     = marksProvider;
     SettingsStore     = settingsStore;
     ElementIdProvider = provider;
 }
Ejemplo n.º 21
0
 public RiderInitialiseOnLoadCctorDetector(ISolution solution, CallGraphSwaExtensionProvider callGraphSwaExtensionProvider,
                                           SettingsStore settingsStore, PerformanceCriticalCodeCallGraphMarksProvider marksProvider, UnityCodeInsightFieldUsageProvider fieldUsageProvider,
                                           UnitySolutionTracker solutionTracker, ConnectionTracker connectionTracker,
                                           IconHost iconHost, IElementIdProvider provider)
     : base(solution, callGraphSwaExtensionProvider, settingsStore, marksProvider, provider)
 {
     myFieldUsageProvider = fieldUsageProvider;
     mySolutionTracker    = solutionTracker;
     myConnectionTracker  = connectionTracker;
     myIconHost           = iconHost;
     myProvider           = provider;
 }
 public ExpensiveInvocationContextProvider(
     Lifetime lifetime,
     IApplicationWideContextBoundSettingStore applicationWideContextBoundSettingStore,
     IElementIdProvider elementIdProvider,
     CallGraphSwaExtensionProvider callGraphSwaExtensionProvider,
     ExpensiveCodeMarksProvider marksProviderBase)
     : base(elementIdProvider, callGraphSwaExtensionProvider, marksProviderBase)
 {
     myIsPerformanceAnalysisEnabledProperty =
         applicationWideContextBoundSettingStore.BoundSettingsStore.GetValueProperty(lifetime,
                                                                                     (UnitySettings s) => s.EnablePerformanceCriticalCodeHighlighting);
 }
 public UnityCommonIconProvider(ISolution solution,
                                CallGraphSwaExtensionProvider callGraphSwaExtensionProvider,
                                SettingsStore settingsStore, PerformanceCriticalCodeCallGraphMarksProvider marksProvider, UnityApi unityApi,
                                IElementIdProvider provider)
 {
     Solution = solution;
     CallGraphSwaExtensionProvider = callGraphSwaExtensionProvider;
     MarksProvider = marksProvider;
     UnityApi      = unityApi;
     Settings      = settingsStore.BindToContextTransient(ContextRange.Smart(solution.ToDataContext()));
     myProvider    = provider;
 }
Ejemplo n.º 24
0
 public RiderFieldDetector(ISolution solution, SolutionAnalysisService swa, CallGraphSwaExtensionProvider callGraphSwaExtensionProvider,
                           SettingsStore settingsStore, PerformanceCriticalCodeCallGraphAnalyzer analyzer, UnityApi unityApi,
                           UnityCodeInsightFieldUsageProvider fieldUsageProvider,
                           UnitySolutionTracker solutionTracker, ConnectionTracker connectionTracker,
                           IconHost iconHost, AssetSerializationMode assetSerializationMode)
     : base(solution, swa, callGraphSwaExtensionProvider, settingsStore, analyzer, unityApi)
 {
     myFieldUsageProvider     = fieldUsageProvider;
     mySolutionTracker        = solutionTracker;
     myConnectionTracker      = connectionTracker;
     myIconHost               = iconHost;
     myAssetSerializationMode = assetSerializationMode;
 }
Ejemplo n.º 25
0
        public static bool HasHotIcon(this ICSharpDeclaration element,
                                      CallGraphSwaExtensionProvider callGraphSwaExtensionProvider, IContextBoundSettingsStore settingsStore,
                                      PerformanceCriticalCodeCallGraphMarksProvider marksProvider, DaemonProcessKind kind, IElementIdProvider provider)
        {
            var declaredElement = element.DeclaredElement;

            if (declaredElement == null)
            {
                return(false);
            }

            return(declaredElement.HasHotIcon(callGraphSwaExtensionProvider, settingsStore, marksProvider, kind, provider));
        }
        public static bool HasHotIcon(this ICSharpDeclaration element, SolutionAnalysisService swa,
                                      CallGraphSwaExtensionProvider callGraphSwaExtensionProvider, IContextBoundSettingsStore settingsStore,
                                      PerformanceCriticalCodeCallGraphAnalyzer analyzer, DaemonProcessKind kind)
        {
            var declaredElement = element.DeclaredElement;

            if (declaredElement == null)
            {
                return(false);
            }

            return(declaredElement.HasHotIcon(swa, callGraphSwaExtensionProvider, settingsStore, analyzer, kind));
        }
Ejemplo n.º 27
0
 public UnityCommonIconProvider(ISolution solution, UnityApi unityApi,
                                CallGraphSwaExtensionProvider callGraphSwaExtensionProvider,
                                IApplicationWideContextBoundSettingStore settingsStore,
                                PerformanceCriticalCodeCallGraphMarksProvider marksProvider,
                                IElementIdProvider provider)
 {
     mySolution = solution;
     CallGraphSwaExtensionProvider = callGraphSwaExtensionProvider;
     MarksProvider = marksProvider;
     UnityApi      = unityApi;
     SettingsStore = settingsStore;
     myProvider    = provider;
 }
 public PerformanceCriticalCodeAnalysisStage(SolutionAnalysisService swa,
                                             UnitySolutionTracker solutionTracker, CallGraphActivityTracker tracker,
                                             CallGraphSwaExtensionProvider callGraphSwaExtension,
                                             PerformanceCriticalCodeCallGraphAnalyzer performanceAnalyzer,
                                             ExpensiveCodeCallGraphAnalyzer expensiveAnalyzer)
 {
     Swa = swa;
     mySolutionTracker     = solutionTracker;
     Tracker               = tracker;
     CallGraphSwaExtension = callGraphSwaExtension;
     PerformanceAnalyzer   = performanceAnalyzer;
     ExpensiveAnalyzer     = expensiveAnalyzer;
 }
        public PerformanceCriticalCodeAnalysisProcess([NotNull] IDaemonProcess process, [NotNull] ICSharpFile file, CallGraphSwaExtensionProvider callGraphSwaExtensionProvider,
                                                      [NotNull] SolutionAnalysisService swa, CallGraphActivityTracker tracker, [NotNull] PerformanceCriticalCodeCallGraphAnalyzer performanceAnalyzer,
                                                      [NotNull] ExpensiveCodeCallGraphAnalyzer expensiveCodeCallGraphAnalyzer)
            : base(process, file)
        {
            myCallGraphSwaExtensionProvider = callGraphSwaExtensionProvider;
            mySwa     = swa;
            myTracker = tracker;
            myPerformanceAnalyzerId = performanceAnalyzer.Id;
            myExpensiveAnalyzerId   = expensiveCodeCallGraphAnalyzer.Id;

            myLineMarkerEnabled = DaemonProcess.ContextBoundSettingsStore.GetValue((UnitySettings key) =>
                                                                                   key.PerformanceHighlightingMode) == PerformanceHighlightingMode.Always;
        }
Ejemplo n.º 30
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;
 }