#pragma warning disable VSTHRD100 // Avoid async void methods - ok as an event handler private async void Execute(object sender, EventArgs e) #pragma warning restore VSTHRD100 // Avoid async void methods { System.Windows.Forms.Cursor previousCursor = System.Windows.Forms.Cursor.Current; System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor; try { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); this.Logger?.RecordFeatureUsage(nameof(AnalyzeCurrentDocumentCommand)); var dte = await Instance.AsyncPackage.GetServiceAsync <DTE, DTE>(); var vs = new VisualStudioAbstraction(this.Logger, this.AsyncPackage, dte); var filePath = vs.GetActiveDocumentFilePath(); // Ensure that the open document has been saved so get latest version var rdt = new RunningDocumentTable(Package); rdt.SaveFileIfDirty(filePath); RapidXamlDocumentCache.Invalidate(filePath); RapidXamlDocumentCache.TryUpdate(filePath); } catch (Exception exc) { this.Logger?.RecordException(exc); } finally { System.Windows.Forms.Cursor.Current = previousCursor; } }
public override void Execute(CancellationToken cancellationToken) { this.Tag.SetAsHiddenInSettingsFile(); this.Source.Refresh(); RapidXamlDocumentCache.RemoveTags(this.Tag.FileName, this.ErrorCode); RapidXamlDocumentCache.Invalidate(this.Tag.FileName); RapidXamlDocumentCache.TryUpdate(this.Tag.FileName); TableDataSource.Instance.CleanErrors(this.Tag.FileName); }