public DiagnosticProgressReporter( SVsTaskStatusCenterService taskStatusCenterService, IDiagnosticService diagnosticService, VisualStudioWorkspace workspace) { _lastTimeReported = DateTimeOffset.UtcNow; _taskCenterService = (IVsTaskStatusCenterService)taskStatusCenterService; _diagnosticService = diagnosticService; _options = new TaskHandlerOptions() { Title = ServicesVSResources.Live_code_analysis, ActionsAfterCompletion = CompletionActions.None }; var crawlerService = workspace.Services.GetService <ISolutionCrawlerService>(); var reporter = crawlerService.GetProgressReporter(workspace); Started(reporter.InProgress); // no event unsubscription since it will remain alive until VS shutdown reporter.ProgressChanged += OnSolutionCrawlerProgressChanged; _diagnosticService.DiagnosticsUpdated += OnDiagnosticsUpdated; }
public TaskCenterSolutionAnalysisProgressReporter( SVsTaskStatusCenterService taskStatusCenterService, IDiagnosticService diagnosticService, VisualStudioWorkspace workspace) { _lastTimeReported = DateTimeOffset.UtcNow; _resettableDelay = null; ResetProgressStatus(); _taskCenterService = (IVsTaskStatusCenterService)taskStatusCenterService; _options = new TaskHandlerOptions() { Title = ServicesVSResources.Running_low_priority_background_processes, ActionsAfterCompletion = CompletionActions.None }; var crawlerService = workspace.Services.GetService <ISolutionCrawlerService>(); var reporter = crawlerService.GetProgressReporter(workspace); StartedOrStopped(reporter.InProgress); // no event unsubscription since it will remain alive until VS shutdown reporter.ProgressChanged += OnSolutionCrawlerProgressChanged; }
public TaskCenterSolutionAnalysisProgressReporter( SVsTaskStatusCenterService taskStatusCenterService, IDiagnosticService diagnosticService, VisualStudioWorkspace workspace) { _taskCenterService = (IVsTaskStatusCenterService)taskStatusCenterService; _options = new TaskHandlerOptions() { Title = ServicesVSResources.Running_low_priority_background_processes, ActionsAfterCompletion = CompletionActions.None }; var crawlerService = workspace.Services.GetRequiredService <ISolutionCrawlerService>(); var reporter = crawlerService.GetProgressReporter(workspace); if (reporter.InProgress) { // The reporter was already sending events before we were able to subscribe, so trigger an update to the task center. OnSolutionCrawlerProgressChanged(this, new ProgressData(ProgressStatus.Started, pendingItemCount: null)); } reporter.ProgressChanged += OnSolutionCrawlerProgressChanged; }