Exemple #1
0
        internal TaggerProvider(ITableManagerProvider tableManagerProvider,
                                ITextDocumentFactoryService textDocumentFactoryService,
                                IIssuesFilter issuesFilter,
                                IAnalyzerController analyzerController,
                                [Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider,
                                ISonarLanguageRecognizer languageRecognizer,
                                IAnalysisRequester analysisRequester,
                                ILogger logger,
                                IScheduler scheduler)
        {
            this.errorTableManager          = tableManagerProvider.GetTableManager(StandardTables.ErrorsTable);
            this.textDocumentFactoryService = textDocumentFactoryService;
            this.issuesFilter = issuesFilter;

            this.errorTableManager.AddSource(this, StandardTableColumnDefinitions.DetailsExpander,
                                             StandardTableColumnDefinitions.ErrorSeverity, StandardTableColumnDefinitions.ErrorCode,
                                             StandardTableColumnDefinitions.ErrorSource, StandardTableColumnDefinitions.BuildTool,
                                             StandardTableColumnDefinitions.ErrorSource, StandardTableColumnDefinitions.ErrorCategory,
                                             StandardTableColumnDefinitions.Text, StandardTableColumnDefinitions.DocumentName,
                                             StandardTableColumnDefinitions.Line, StandardTableColumnDefinitions.Column,
                                             StandardTableColumnDefinitions.ProjectName);

            this.analyzerController = analyzerController;
            this.dte = serviceProvider.GetService <DTE>();
            this.languageRecognizer = languageRecognizer;
            this.logger             = logger;
            this.scheduler          = scheduler;

            vsStatusBar = serviceProvider.GetService(typeof(IVsStatusbar)) as IVsStatusbar;
            analysisRequester.AnalysisRequested += OnAnalysisRequested;
        }
Exemple #2
0
        internal TaggerProvider(ISonarErrorListDataSource sonarErrorDataSource,
                                ITextDocumentFactoryService textDocumentFactoryService,
                                IIssuesFilter issuesFilter,
                                IAnalyzerController analyzerController,
                                [Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider,
                                ISonarLanguageRecognizer languageRecognizer,
                                IAnalysisRequester analysisRequester,
                                IAnalysisIssueVisualizationConverter converter,
                                ILogger logger,
                                IScheduler scheduler)
        {
            this.sonarErrorDataSource       = sonarErrorDataSource;
            this.textDocumentFactoryService = textDocumentFactoryService;
            this.issuesFilter = issuesFilter;

            this.analyzerController = analyzerController;
            this.dte = serviceProvider.GetService <DTE>();
            this.languageRecognizer = languageRecognizer;
            this.converter          = converter;
            this.logger             = logger;
            this.scheduler          = scheduler;

            vsStatusBar = serviceProvider.GetService(typeof(IVsStatusbar)) as IVsStatusbar;
            analysisRequester.AnalysisRequested += OnAnalysisRequested;

            vsSolution = serviceProvider.GetService(typeof(SVsSolution)) as IVsSolution5;
        }
Exemple #3
0
        public void SetUp()
        {
            // minimal setup to create a tagger

            mockSonarErrorDataSource = new Mock <ISonarErrorListDataSource>();

            mockAnalyzerController = new Mock <IAnalyzerController>();
            mockAnalyzerController.Setup(x => x.IsAnalysisSupported(It.IsAny <IEnumerable <AnalysisLanguage> >())).Returns(true);
            analyzerController = this.mockAnalyzerController.Object;

            var mockProject = new Mock <Project>();

            mockProject.Setup(p => p.Name).Returns("MyProject");
            var project = mockProject.Object;

            var mockProjectItem = new Mock <ProjectItem>();

            mockProjectItem.Setup(s => s.ContainingProject).Returns(project);
            var projectItem = mockProjectItem.Object;

            var mockSolution = new Mock <Solution>();

            mockSolution.Setup(s => s.FindProjectItem(It.IsAny <string>())).Returns(projectItem);
            var solution = mockSolution.Object;

            var mockDTE = new Mock <DTE>();

            mockDTE.Setup(d => d.Solution).Returns(solution);
            var dte = mockDTE.Object;

            var mockServiceProvider = new Mock <IServiceProvider>();

            mockServiceProvider.Setup(s => s.GetService(typeof(DTE))).Returns(dte);
            mockServiceProvider.Setup(s => s.GetService(typeof(SVsSolution))).Returns(Mock.Of <IVsSolution5>());

            var serviceProvider = mockServiceProvider.Object;

            dummyDocumentFactoryService = new DummyTextDocumentFactoryService();

            logger = new TestLogger();

            mockSonarLanguageRecognizer = new Mock <ISonarLanguageRecognizer>();
            var mockAnalysisRequester = new Mock <IAnalysisRequester>();

            mockAnalysisScheduler = new Mock <IScheduler>();
            mockAnalysisScheduler.Setup(x => x.Schedule(It.IsAny <string>(), It.IsAny <Action <CancellationToken> >(), It.IsAny <int>()))
            .Callback((string file, Action <CancellationToken> analyze, int timeout) => analyze(CancellationToken.None));

            var issuesFilter = new Mock <IIssuesFilter>();

            this.provider = new TaggerProvider(mockSonarErrorDataSource.Object, dummyDocumentFactoryService, issuesFilter.Object, analyzerController, serviceProvider,
                                               mockSonarLanguageRecognizer.Object, mockAnalysisRequester.Object, Mock.Of <IAnalysisIssueVisualizationConverter>(), logger, mockAnalysisScheduler.Object);
        }
Exemple #4
0
        public void SetUp()
        {
            // minimal setup to create a tagger

            mockAnalyzerController = new Mock <IAnalyzerController>();
            mockAnalyzerController.Setup(x => x.IsAnalysisSupported(It.IsAny <IEnumerable <AnalysisLanguage> >())).Returns(true);
            analyzerController = this.mockAnalyzerController.Object;

            var mockTableManagerProvider = new Mock <ITableManagerProvider>();

            mockTableManagerProvider.Setup(t => t.GetTableManager(StandardTables.ErrorsTable))
            .Returns(new Mock <ITableManager>().Object);
            var tableManagerProvider = mockTableManagerProvider.Object;

            var mockContentTypeRegistryService = new Mock <IContentTypeRegistryService>();

            mockContentTypeRegistryService.Setup(c => c.ContentTypes).Returns(Enumerable.Empty <IContentType>());
            var contentTypeRegistryService = mockContentTypeRegistryService.Object;

            var mockProject = new Mock <Project>();

            mockProject.Setup(p => p.Name).Returns("MyProject");
            var project = mockProject.Object;

            var mockProjectItem = new Mock <ProjectItem>();

            mockProjectItem.Setup(s => s.ContainingProject).Returns(project);
            var projectItem = mockProjectItem.Object;

            var mockSolution = new Mock <Solution>();

            mockSolution.Setup(s => s.FindProjectItem(It.IsAny <string>())).Returns(projectItem);
            var solution = mockSolution.Object;

            var mockDTE = new Mock <DTE>();

            mockDTE.Setup(d => d.Solution).Returns(solution);
            var dte = mockDTE.Object;

            var mockServiceProvider = new Mock <IServiceProvider>();

            mockServiceProvider.Setup(s => s.GetService(typeof(DTE))).Returns(dte);
            var serviceProvider = mockServiceProvider.Object;

            var mockFileExtensionRegistryService = new Mock <IFileExtensionRegistryService>();
            var fileExtensionRegistryService     = mockFileExtensionRegistryService.Object;

            var mockJsContentType = new Mock <IContentType>();

            mockJsContentType.Setup(c => c.IsOfType(It.IsAny <string>())).Returns(false);
            mockJsContentType.Setup(c => c.IsOfType("JavaScript")).Returns(true);
            this.jsContentType = mockJsContentType.Object;

            dummyDocumentFactoryService = new DummyTextDocumentFactoryService();

            mockLogger = new Mock <ILogger>();

            var sonarLanguageRecognizer = new SonarLanguageRecognizer(contentTypeRegistryService, fileExtensionRegistryService);
            var mockAnalysisRequester   = new Mock <IAnalysisRequester>();

            this.provider = new TaggerProvider(tableManagerProvider, dummyDocumentFactoryService, analyzerController, serviceProvider,
                                               sonarLanguageRecognizer, mockAnalysisRequester.Object, mockLogger.Object);
        }