Пример #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;
        }
Пример #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;
        }
Пример #3
0
        internal TextBufferIssueTracker(DTE dte, TaggerProvider provider, ITextDocument document,
                                        IEnumerable <AnalysisLanguage> detectedLanguages, IIssueConverter issueConverter, ILogger logger, IIssuesFilter issuesFilter)
        {
            this.dte = dte;

            this.Provider        = provider;
            this.textBuffer      = document.TextBuffer;
            this.currentSnapshot = document.TextBuffer.CurrentSnapshot;

            this.detectedLanguages = detectedLanguages;
            this.issueConverter    = issueConverter;
            this.logger            = logger;
            this.issuesFilter      = issuesFilter;

            this.document = document;
            this.FilePath = document.FilePath;

            this.ProjectItem = dte.Solution.FindProjectItem(this.FilePath);
            this.charset     = document.Encoding.WebName;

            // Bug #676: https://github.com/SonarSource/sonarlint-visualstudio/issues/676
            // It's possible to have a ProjectItem that doesn't have a ContainingProject
            // e.g. files under the "External Dependencies" project folder in the Solution Explorer
            var projectName = this.ProjectItem?.ContainingProject.Name ?? "{none}";

            this.Factory = new SnapshotFactory(new IssuesSnapshot(projectName, this.FilePath, 0,
                                                                  new List <IssueMarker>()));

            document.FileActionOccurred += SafeOnFileActionOccurred;
        }
        public TextBufferIssueTracker(DTE dte, TaggerProvider provider, ITextDocument document,
                                      IEnumerable <AnalysisLanguage> detectedLanguages, IIssuesFilter issuesFilter,
                                      ISonarErrorListDataSource sonarErrorDataSource, IAnalysisIssueVisualizationConverter converter,
                                      IVsSolution5 vsSolution, ILogger logger)
        {
            this.dte = dte;

            this.Provider   = provider;
            this.textBuffer = document.TextBuffer;

            this.detectedLanguages    = detectedLanguages;
            this.sonarErrorDataSource = sonarErrorDataSource;
            this.converter            = converter;
            this.vsSolution           = vsSolution;
            this.logger       = logger;
            this.issuesFilter = issuesFilter;

            this.document = document;
            this.FilePath = document.FilePath;
            this.charset  = document.Encoding.WebName;

            this.Factory = new IssuesSnapshotFactory(new IssuesSnapshot(GetProjectName(), GetProjectGuid(), FilePath, new List <IAnalysisIssueVisualization>()));

            document.FileActionOccurred += SafeOnFileActionOccurred;

            sonarErrorDataSource.AddFactory(this.Factory);
            Provider.AddIssueTracker(this);

            RequestAnalysis(null /* no options */);
        }
Пример #5
0
 public AnalysisView(AnalysisViewDescriptor desc, ProjectAuditorConfig config, IIssuesFilter filter)
 {
     m_Desc   = desc;
     m_Config = config;
     m_Filter = filter;
     m_Table  = null;
 }
Пример #6
0
 public IssueTable(TreeViewState state, MultiColumnHeader multicolumnHeader,
                   bool groupByDescription, ProjectAuditorConfig config, IIssuesFilter issuesFilter) : base(state,
                                                                                                            multicolumnHeader)
 {
     m_Config                          = config;
     m_IssuesFilter                    = issuesFilter;
     m_GroupByDescription              = groupByDescription;
     multicolumnHeader.sortingChanged += OnSortingChanged;
 }
Пример #7
0
 public TextBufferIssueTracker(DTE dte, TaggerProvider provider, ITextDocument document,
                               IEnumerable <AnalysisLanguage> detectedLanguages, ILogger logger, IIssuesFilter issuesFilter)
     : this(dte, provider, document, detectedLanguages, new IssueConverter(), logger, issuesFilter)
 {
 }
Пример #8
0
 public TestableTextBufferIssueTracker(DTE dte, TaggerProvider provider, ITextDocument document,
                                       IEnumerable <AnalysisLanguage> detectedLanguages, IIssuesFilter issuesFilter,
                                       ISonarErrorListDataSource sonarErrorDataSource, IAnalysisIssueVisualizationConverter converter, IVsSolution5 vsSolution, ILogger logger)
     : base(dte, provider, document, detectedLanguages, issuesFilter, sonarErrorDataSource, converter, vsSolution, logger)
 {
 }