private void CleanupSuppressionHandling()
 {
     delegateInjector?.Dispose();
     delegateInjector = null;
     (sonarqubeIssueProvider as IDisposable)?.Dispose();
     sonarqubeIssueProvider = null;
 }
        private void Refresh(BindingConfiguration configuration)
        {
            CleanupResources();

            if (configuration.Mode != SonarLintMode.Standalone)
            {
                instance = createProviderFunc(configuration);
                SuppressionsUpdateRequested?.Invoke(this, EventArgs.Empty);
            }
        }
        private void SetupSuppressionHandling()
        {
            var componentModel = (IComponentModel)serviceProvider.GetService(typeof(SComponentModel));
            var workspace      = componentModel.GetService <VisualStudioWorkspace>();
            var solution       = this.serviceProvider.GetService <SVsSolution, IVsSolution>();

            liveIssueFactory       = new LiveIssueFactory(workspace, solution);
            delegateInjector       = new DelegateInjector(ShouldIssueBeReported, sonarLintOutput);
            sonarqubeIssueProvider = new SonarQubeIssuesProvider(sonarQubeService, this.activeSolutionBoundTracker.ProjectKey,
                                                                 timerFactory);
        }
        public SuppressionHandler(ILiveIssueFactory liveIssueFactory, ISonarQubeIssuesProvider serverIssuesProvider)
        {
            if (liveIssueFactory == null)
            {
                throw new ArgumentNullException(nameof(liveIssueFactory));
            }
            if (serverIssuesProvider == null)
            {
                throw new ArgumentNullException(nameof(serverIssuesProvider));
            }

            this.liveIssueFactory     = liveIssueFactory;
            this.serverIssuesProvider = serverIssuesProvider;
        }
示例#5
0
        public SonarAnalyzerManager(IActiveSolutionBoundTracker activeSolutionBoundTracker,
                                    Workspace workspace,
                                    IVsSolution vsSolution,
                                    ILogger logger,
                                    ISonarQubeIssuesProvider sonarQubeIssuesProvider)
        {
            this.activeSolutionBoundTracker = activeSolutionBoundTracker ?? throw new ArgumentNullException(nameof(activeSolutionBoundTracker));
            this.workspace  = workspace ?? throw new ArgumentNullException(nameof(workspace));
            this.vsSolution = vsSolution ?? throw new ArgumentNullException(nameof(vsSolution));
            this.logger     = logger ?? throw new ArgumentNullException(nameof(logger));
            this.sonarQubeIssuesProvider = sonarQubeIssuesProvider ?? throw new ArgumentNullException(nameof(sonarQubeIssuesProvider));

            // Saving previous state so that SonarLint doesn't have to know what's the default state in SonarAnalyzer
            this.previousShouldExecuteRegisteredAction = SonarAnalysisContext.ShouldExecuteRegisteredAction;
            this.previousShouldDiagnosticBeReported    = SonarAnalysisContext.ShouldDiagnosticBeReported;
            this.previousReportDiagnostic = SonarAnalysisContext.ReportDiagnostic;

            activeSolutionBoundTracker.SolutionBindingChanged += OnSolutionBindingChanged;
            activeSolutionBoundTracker.SolutionBindingUpdated += OnSolutionBindingUpdated;

            RefreshWorkflow(this.activeSolutionBoundTracker.CurrentConfiguration);
        }
示例#6
0
 private void SetupSuppressionHandling()
 {
     liveIssueFactory       = new LiveIssueFactory(serviceProvider);
     delegateInjector       = new DelegateInjector(ShouldIssueBeReported, serviceProvider);
     sonarqubeIssueProvider = new SonarQubeIssuesProvider(sonarQubeService, activeSolutionBoundTracker, timerFactory);
 }
 public SuppressedIssueMatcher(ISonarQubeIssuesProvider issuesProvider)
 {
     this.issuesProvider = issuesProvider ?? throw new ArgumentNullException(nameof(issuesProvider));
 }
 private void CleanupResources()
 {
     instance?.Dispose();
     instance = null;
 }
 public IssuesFilter(ISonarQubeIssuesProvider sonarQubeIssuesProvider)
     : this(new SuppressedIssueMatcher(sonarQubeIssuesProvider))
 {
 }