Пример #1
0
        public VisualStudioSuppressionFixService(
            SVsServiceProvider serviceProvider,
            VisualStudioWorkspaceImpl workspace,
            IDiagnosticAnalyzerService diagnosticService,
            ICodeFixService codeFixService,
            ICodeActionEditHandlerService editHandlerService,
            IVisualStudioDiagnosticListSuppressionStateService suppressionStateService,
            IUIThreadOperationExecutor uiThreadOperationExecutor,
            IVsHierarchyItemManager vsHierarchyItemManager,
            IAsynchronousOperationListenerProvider listenerProvider,
            IGlobalOptionService globalOptions)
        {
            _workspace                    = workspace;
            _diagnosticService            = diagnosticService;
            _buildErrorDiagnosticService  = workspace.ExternalErrorDiagnosticUpdateSource;
            _codeFixService               = codeFixService;
            _suppressionStateService      = (VisualStudioDiagnosticListSuppressionStateService)suppressionStateService;
            _editHandlerService           = editHandlerService;
            _uiThreadOperationExecutor    = uiThreadOperationExecutor;
            _vsHierarchyItemManager       = vsHierarchyItemManager;
            _fixMultipleOccurencesService = workspace.Services.GetRequiredService <IFixMultipleOccurrencesService>();
            _projectMap                   = workspace.Services.GetRequiredService <IHierarchyItemToProjectIdMap>();

            var errorList = serviceProvider.GetService(typeof(SVsErrorList)) as IErrorList;

            _tableControl  = errorList?.TableControl;
            _listener      = listenerProvider.GetListener(FeatureAttribute.ErrorList);
            _globalOptions = globalOptions;
        }
        public VisualStudioSuppressionFixService(
            SVsServiceProvider serviceProvider,
            VisualStudioWorkspaceImpl workspace,
            IDiagnosticAnalyzerService diagnosticService,
            ExternalErrorDiagnosticUpdateSource buildErrorDiagnosticService,
            ICodeFixService codeFixService,
            ICodeActionEditHandlerService editHandlerService,
            IVisualStudioDiagnosticListSuppressionStateService suppressionStateService,
            IWaitIndicator waitIndicator,
            IVsHierarchyItemManager vsHierarchyItemManager)
        {
            _workspace                    = workspace;
            _diagnosticService            = diagnosticService;
            _buildErrorDiagnosticService  = buildErrorDiagnosticService;
            _codeFixService               = codeFixService;
            _suppressionStateService      = (VisualStudioDiagnosticListSuppressionStateService)suppressionStateService;
            _editHandlerService           = editHandlerService;
            _waitIndicator                = waitIndicator;
            _vsHierarchyItemManager       = vsHierarchyItemManager;
            _fixMultipleOccurencesService = workspace.Services.GetService <IFixMultipleOccurrencesService>();
            _projectMap                   = workspace.Services.GetService <IHierarchyItemToProjectIdMap>();

            var errorList = serviceProvider.GetService(typeof(SVsErrorList)) as IErrorList;

            _tableControl = errorList?.TableControl;
        }
        private static Func <Project, bool> GetShouldFixInProjectDelegate(
            IVsHierarchyItemManager vsHierarchyItemManager,
            IHierarchyItemToProjectIdMap projectMap,
            IVsHierarchy projectHierarchyOpt
            )
        {
            ProjectId projectIdToMatch = null;

            if (projectHierarchyOpt != null)
            {
                var projectHierarchyItem = vsHierarchyItemManager.GetHierarchyItem(
                    projectHierarchyOpt,
                    VSConstants.VSITEMID_ROOT
                    );
                if (
                    projectMap.TryGetProjectId(
                        projectHierarchyItem,
                        targetFrameworkMoniker: null,
                        out var projectId
                        )
                    )
                {
                    projectIdToMatch = projectId;
                }
            }

            return(p => projectHierarchyOpt == null || p.Id == projectIdToMatch);
        }
Пример #4
0
        private IHierarchyItemToProjectIdMap TryGetProjectMap()
        {
            var workspace = TryGetWorkspace();

            if (workspace == null)
            {
                return(null);
            }

            if (_projectMap == null)
            {
                _projectMap = workspace.Services.GetService <IHierarchyItemToProjectIdMap>();
            }

            return(_projectMap);
        }
Пример #5
0
 internal AnalyzersFolderItemProvider(IHierarchyItemToProjectIdMap projectMap, Workspace workspace, IAnalyzersCommandHandler commandHandler)
 {
     _projectMap     = projectMap;
     _workspace      = workspace;
     _commandHandler = commandHandler;
 }
Пример #6
0
 /// <summary>
 /// Constructor for use only in unit tests. Bypasses MEF to set the project mapper, workspace and glyph service.
 /// </summary>
 /// <param name="workspace"></param>
 /// <param name="projectMap"></param>
 internal AnalyzersFolderItemProvider(IHierarchyItemToProjectIdMap projectMap, Workspace workspace)
 {
     _projectMap = projectMap;
     _workspace  = workspace;
 }