dotnet / roslyn

The Roslyn .NET compiler provides C# and Visual Basic languages with rich code analysis APIs.
https://docs.microsoft.com/dotnet/csharp/roslyn-sdk/
MIT License
18.86k stars 4.01k forks source link

Remaining work to get 'Background Wait Indicator' sufficient for most of Roslyn, and ready for Platform adoption. #61416

Open CyrusNajmabadi opened 2 years ago

CyrusNajmabadi commented 2 years ago

So far, our experience with the new background work indicator (BWI) has been positive. The API is a near drop in for the existing threaded-wait-dialog (TWD) API and allows a much more lightweight, non-blocking, in-situ UI for letting the user know what's going on.

@ryzngard and I have been talking about what remains to make this a sufficient system for the 90% case for Roslyn, as well as being capable and proven out enough to then move to 'platform' as a general VS facility.

The remaining items are as follows:

  1. The UI shoudl be able to show progress. This is supported in the API already, and is really needed for very long running operations to let the user know that things are actually progressing. This is def necessary if we want to move 'code action - fix all' over to this as the operation time can sometimes be minutes. This is acceptable when you at least can see that it's moving forward, but not at all ok if the user can't see anything happening while they wait.
  2. The UI needs to be accessible. This is mandatory for anything we do.
  3. The UI should provide a good experience around large-scale "global" operations. Right now the UI shows up in the editor, meaning that if you are making a global operation and switch tabs it will either continue running (without any indication that is happening), or it has to cancel. Similarly, if the user edits at all, the operation will instantly cancel, without giving them a chance to not do that. To make this better, we should likely have varying UIs for this feature depending on the flags the user passes in. For these global operations we should likely place the UI in the VS chrome itself so that it is always visible even while the user navigates around. We should also capture edits in that time and notify the user that editing would cancel and ask them if they want to proceed with the edit or not.
  4. The UI needs to be interactive/responsive even if the VS UI thread is blocked (just like the TWD is). However, this should likely be done by the platform, not us (reusing the infrastructure pieces the TWD already has).
  5. Allow this UI to work without a text-editor to show hte UI. We can consider using the VS task progress list:

image

Related issues:

CyrusNajmabadi commented 2 years ago

@ryzngard @vatsalyaagrawal @mikadumont For visibility. I recommend front loading the design portion of this in the end of 17.3, and then doing the impl side of it in 17.4.

sharwell commented 2 years ago

The UI needs to be interactive/responsive even if the VS UI thread is blocked (just like the TWD is).

This is going to be nearly impossible for us to complete. The TWD is implemented as a separate process which then shows over the main VS window (so it has its own rendering loop). We can safely defer this to the editor.

CyrusNajmabadi commented 2 years ago

This is going to be nearly impossible for us to complete

That's why it's in teh bucket of:

However, this should likely be done by the platform, not us (reusing the infrastructure pieces the TWD already has).

ryzngard commented 2 years ago

Dump of FAR as of today in main, will make buckets for work on each of these

Code File Line Column Project Containing Member Containing Type Kind Repository
using var scope2 = context.AddScope( \src\VisualStudio\Core\Impl\SolutionExplorer\AnalyzersCommandHandler.cs 506 48 Microsoft.VisualStudio.LanguageServices.Implementation SetSeverityHandlerAsync AnalyzersCommandHandler Read
using (context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesWpfResources.Executing_selection_in_Interactive_Window)) \src\EditorFeatures\Core.Wpf\Interactive\InteractiveCommandHandler.cs 61 45 Microsoft.CodeAnalysis.EditorFeatures.Wpf Microsoft.VisualStudio.Commanding.ICommandHandler.ExecuteCommand InteractiveCommandHandler Read
using (var waitScope = context.OperationContext.AddScope(allowCancellation: true, \src\EditorFeatures\Core.Wpf\Interactive\InteractiveCommandHandler.cs 106 61 Microsoft.CodeAnalysis.EditorFeatures.Wpf CopyToWindow InteractiveCommandHandler Read
using var scope = uiThreadOperationContext.AddScope(allowCancellation: true, EditorFeaturesWpfResources.Resetting_Interactive); \src\EditorFeatures\Core.Wpf\Interactive\ResetInteractive.cs 104 56 Microsoft.CodeAnalysis.EditorFeatures.Wpf ResetInteractiveAsync ResetInteractive Read
using var scope = context.AddScope(allowCancellation: true, CodeAction.Message); \src\EditorFeatures\Core.Wpf\Suggestions\SuggestedActions\SuggestedAction.cs 114 43 Microsoft.CodeAnalysis.EditorFeatures.Wpf InvokeAsync SuggestedAction Read
using (operationContext?.AddScope(allowCancellation: true, description: EditorFeaturesResources.Gathering_Suggestions_Waiting_for_the_solution_to_fully_load)) \src\EditorFeatures\Core.Wpf\Suggestions\SuggestedActionsSource.cs 152 42 Microsoft.CodeAnalysis.EditorFeatures.Wpf GetSuggestedActions SuggestedActionsSource Read
description => operationContext?.AddScope(allowCancellation: true, string.Format(EditorFeaturesResources.Gathering_Suggestions_0, description)); \src\EditorFeatures\Core.Wpf\Suggestions\SuggestedActionsSource.cs 175 58 Microsoft.CodeAnalysis.EditorFeatures.Wpf GetSuggestedActions SuggestedActionsSource Read
using (context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Automatically_completing)) \src\EditorFeatures\Core\AutomaticCompletion\AbstractAutomaticLineEnderCommandHandler.cs 99 45 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommand AbstractAutomaticLineEnderCommandHandler Read
=> _context.AddScope(allowCancellation, description); \src\EditorFeatures\Core\BackgroundWorkIndicator\DefaultBackgroundWorkIndicatorFactory.cs 53 25 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) AddScope DefaultBackgroundWorkIndicatorContext Read
using (context.OperationContext.AddScope(allowCancellation: true, FeaturesResources.Change_signature)) \src\EditorFeatures\Core\ChangeSignature\AbstractChangeSignatureCommandHandler.cs 59 45 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommand AbstractChangeSignatureCommandHandler Read
using (context.OperationContext.AddScope(allowCancellation: true, message)) \src\EditorFeatures\Core\CommentSelection\AbstractCommentSelectionBase.cs 92 45 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommand AbstractCommentSelectionBase Read
using (context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Inserting_documentation_comment)) \src\EditorFeatures\Core\DocumentationComments\AbstractDocumentationCommentCommandHandler.cs 227 45 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommand AbstractDocumentationCommentCommandHandler Read
using (context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Completing_Tag)) \src\EditorFeatures\Core\DocumentationComments\AbstractXmlTagCompletionCommandHandler.cs 64 45 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommandWorker AbstractXmlTagCompletionCommandHandler Read
using (context.OperationContext.AddScope(allowCancellation: true, description: EditorFeaturesResources.Navigating)) \src\EditorFeatures\Core\Editor\GoToAdjacentMemberCommandHandler.cs 90 45 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommandImpl GoToAdjacentMemberCommandHandler Read
using (context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Extract_Interface)) \src\EditorFeatures\Core\ExtractInterface\AbstractExtractInterfaceCommandHandler.cs 40 45 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommand AbstractExtractInterfaceCommandHandler Read
using (context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Formatting_document)) \src\EditorFeatures\Core\Formatting\FormatCommandHandler.FormatDocument.cs 37 45 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommand FormatCommandHandler Read
using (context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Formatting_currently_selected_text)) \src\EditorFeatures\Core\Formatting\FormatCommandHandler.FormatSelection.cs 43 45 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) TryExecuteCommand FormatCommandHandler Read
using var _ = context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Formatting_pasted_text); \src\EditorFeatures\Core\Formatting\FormatCommandHandler.Paste.cs 28 52 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommand FormatCommandHandler Read
using (context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Navigating_to_definition)) \src\EditorFeatures\Core\GoToDefinition\GoToDefinitionCommandHandler.cs 121 45 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteSynchronously GoToDefinitionCommandHandler Read
using (context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Finding_token_to_rename)) \src\EditorFeatures\Core\InlineRename\CommandHandlers\AbstractRenameCommandHandler_RenameHandler.cs 41 45 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommand AbstractRenameCommandHandler Read
using var _ = operationContext.AddScope(allowCancellation: false, EditorFeaturesResources.Updating_files); \src\EditorFeatures\Core\InlineRename\InlineRenameSession.cs 831 48 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) CommitCoreAsync InlineRenameSession Read
using (context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Organizing_document)) \src\EditorFeatures\Core\Organizing\OrganizeDocumentCommandHandler.cs 57 45 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommand OrganizeDocumentCommandHandler Read
using (context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Organizing_document)) \src\EditorFeatures\Core\Organizing\OrganizeDocumentCommandHandler.cs 118 45 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommand OrganizeDocumentCommandHandler Read
using (context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Organizing_document)) \src\EditorFeatures\Core\Organizing\OrganizeDocumentCommandHandler.cs 128 45 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommand OrganizeDocumentCommandHandler Read
using (operationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Waiting_for_background_work_to_finish)) \src\EditorFeatures\Core\Shared\Extensions\ITextSnapshotExtensions.cs 71 37 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) GetFullyLoadedOpenDocumentInCurrentContextWithChangesAsync ITextSnapshotExtensions Read
using (context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Split_comment)) \src\EditorFeatures\Core\SplitComment\SplitCommentCommandHandler.cs 92 45 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommand SplitCommentCommandHandler Read
Using context.OperationContext.AddScope(allowCancellation:=True, VBEditorResources.Formatting_Document) \src\EditorFeatures\VisualBasic\LineCommit\CommitCommandHandler.vb 76 44 Microsoft.CodeAnalysis.VisualBasic.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommand CommitCommandHandler Read
Using context.OperationContext.AddScope(allowCancellation:=True, VBEditorResources.Formatting_Document) \src\EditorFeatures\VisualBasic\LineCommit\CommitCommandHandler.vb 97 44 Microsoft.CodeAnalysis.VisualBasic.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommand CommitCommandHandler Read
Using context.OperationContext.AddScope(allowCancellation:=True, VBEditorResources.Formatting_pasted_text) \src\EditorFeatures\VisualBasic\LineCommit\CommitCommandHandler.vb 224 44 Microsoft.CodeAnalysis.VisualBasic.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommand CommitCommandHandler Read
Using context.OperationContext.AddScope(allowCancellation:=True, VBEditorResources.Formatting_Document) \src\EditorFeatures\VisualBasic\LineCommit\CommitCommandHandler.vb 269 48 Microsoft.CodeAnalysis.VisualBasic.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommand CommitCommandHandler Read
using (var waitScope = context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Computing_Call_Hierarchy_Information)) \src\VisualStudio\Core\Def\CallHierarchy\CallHierarchyCommandHandler.cs 52 61 Microsoft.VisualStudio.LanguageServices ExecuteCommand CallHierarchyCommandHandler Read
using (var scope = context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Waiting_for_background_work_to_finish)) \src\VisualStudio\Core\Def\CodeCleanup\AbstractCodeCleanUpFixer.cs 217 57 Microsoft.VisualStudio.LanguageServices FixAsync AbstractCodeCleanUpFixer Read
using (var scope = context.OperationContext.AddScope(allowCancellation: true, description: EditorFeaturesResources.Applying_changes)) \src\VisualStudio\Core\Def\CodeCleanup\AbstractCodeCleanUpFixer.cs 226 57 Microsoft.VisualStudio.LanguageServices FixAsync AbstractCodeCleanUpFixer Read
using var waitScope = context.OperationContext.AddScope(allowCancellation: true, string.Format(ServicesVSResources.Synchronizing_with_0, ClassView)); \src\VisualStudio\Core\Def\Library\ClassView\AbstractSyncClassViewCommandHandler.cs 53 60 Microsoft.VisualStudio.LanguageServices ExecuteCommand AbstractSyncClassViewCommandHandler Read
using var scope = context.AddScope(allowCancellation: true, description); \src\VisualStudio\Core\Def\Packaging\PackageInstallerServiceFactory_UndoRedo.cs 147 43 Microsoft.VisualStudio.LanguageServices DoWorkerAsync UninstallPackageUndoUnit Read
using var scope = context.AddScope(allowCancellation: true, description); \src\VisualStudio\Core\Def\Packaging\PackageInstallerServiceFactory_UndoRedo.cs 185 43 Microsoft.VisualStudio.LanguageServices DoWorkerAsync InstallPackageUndoUnit Read
using var scope = context.AddScope(allowCancellation: true, ServicesVSResources.Updating_severity); \src\VisualStudio\Core\Def\TableDataSource\Suppression\VisualStudioDiagnosticListTableCommandHandler.cs 206 43 Microsoft.VisualStudio.LanguageServices SetSeverityHandlerAsync VisualStudioDiagnosticListTableCommandHandler Read
using var scope = context.AddScope(allowCancellation: true, description: waitDialogMessage); \src\VisualStudio\Core\Def\TableDataSource\Suppression\VisualStudioSuppressionFixService.cs 389 47 Microsoft.VisualStudio.LanguageServices ApplySuppressionFixAsync VisualStudioSuppressionFixService Read
using var scope1 = context.AddScope(allowCancellation: true, description: ""); \src\VisualStudio\Core\Impl\SolutionExplorer\AnalyzersCommandHandler.cs 475 56 Microsoft.VisualStudio.LanguageServices.Implementation SetSeverityHandlerAsync AnalyzersCommandHandler Read
ryzngard commented 2 years ago

Things We Can Port With Current Design

Code File Line Column Project Containing Member Containing Type Kind Repository
using (context.OperationContext.AddScope(allowCancellation: true, FeaturesResources.Change_signature)) \src\EditorFeatures\Core\ChangeSignature\AbstractChangeSignatureCommandHandler.cs 59 45 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommand AbstractChangeSignatureCommandHandler Read
using (operationContext?.AddScope(allowCancellation: true, description: EditorFeaturesResources.Gathering_Suggestions_Waiting_for_the_solution_to_fully_load)) \src\EditorFeatures\Core.Wpf\Suggestions\SuggestedActionsSource.cs 152 42 Microsoft.CodeAnalysis.EditorFeatures.Wpf GetSuggestedActions SuggestedActionsSource Read
description => operationContext?.AddScope(allowCancellation: true, string.Format(EditorFeaturesResources.Gathering_Suggestions_0, description)); \src\EditorFeatures\Core.Wpf\Suggestions\SuggestedActionsSource.cs 175 58 Microsoft.CodeAnalysis.EditorFeatures.Wpf GetSuggestedActions SuggestedActionsSource Read
using (context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Inserting_documentation_comment)) \src\EditorFeatures\Core\DocumentationComments\AbstractDocumentationCommentCommandHandler.cs 227 45 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommand AbstractDocumentationCommentCommandHandler Read
using (context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Formatting_currently_selected_text)) \src\EditorFeatures\Core\Formatting\FormatCommandHandler.FormatSelection.cs 43 45 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) TryExecuteCommand FormatCommandHandler Read
using (context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Finding_token_to_rename)) \src\EditorFeatures\Core\InlineRename\CommandHandlers\AbstractRenameCommandHandler_RenameHandler.cs 41 45 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommand AbstractRenameCommandHandler Read
using var _ = context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Formatting_pasted_text); \src\EditorFeatures\Core\Formatting\FormatCommandHandler.Paste.cs 28 52 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommand FormatCommandHandler Read
Using context.OperationContext.AddScope(allowCancellation:=True, VBEditorResources.Formatting_pasted_text) \src\EditorFeatures\VisualBasic\LineCommit\CommitCommandHandler.vb 224 44 Microsoft.CodeAnalysis.VisualBasic.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommand CommitCommandHandler Read
using (var waitScope = context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Computing_Call_Hierarchy_Information)) \src\VisualStudio\Core\Def\CallHierarchy\CallHierarchyCommandHandler.cs 52 61 Microsoft.VisualStudio.LanguageServices ExecuteCommand CallHierarchyCommandHandler Read
using (context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Split_comment)) \src\EditorFeatures\Core\SplitComment\SplitCommentCommandHandler.cs 92 45 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommand SplitCommentCommandHandler Read
using (context.OperationContext.AddScope(allowCancellation: true, message)) \src\EditorFeatures\Core\CommentSelection\AbstractCommentSelectionBase.cs 92 45 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommand AbstractCommentSelectionBase Read
using (context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesWpfResources.Executing_selection_in_Interactive_Window)) \src\EditorFeatures\Core.Wpf\Interactive\InteractiveCommandHandler.cs 61 45 Microsoft.CodeAnalysis.EditorFeatures.Wpf Microsoft.VisualStudio.Commanding.ICommandHandler.ExecuteCommand InteractiveCommandHandler Read
using var waitScope = context.OperationContext.AddScope(allowCancellation: true, string.Format(ServicesVSResources.Synchronizing_with_0, ClassView)); \src\VisualStudio\Core\Def\Library\ClassView\AbstractSyncClassViewCommandHandler.cs 53 60 Microsoft.VisualStudio.LanguageServices ExecuteCommand AbstractSyncClassViewCommandHandler Read
using (operationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Waiting_for_background_work_to_finish)) \src\EditorFeatures\Core\Shared\Extensions\ITextSnapshotExtensions.cs 71 37 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) GetFullyLoadedOpenDocumentInCurrentContextWithChangesAsync ITextSnapshotExtensions Read
using var scope = context.AddScope(allowCancellation: true, CodeAction.Message); \src\EditorFeatures\Core.Wpf\Suggestions\SuggestedActions\SuggestedAction.cs 114 43 Microsoft.CodeAnalysis.EditorFeatures.Wpf InvokeAsync SuggestedAction Read
using (context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Completing_Tag)) \src\EditorFeatures\Core\DocumentationComments\AbstractXmlTagCompletionCommandHandler.cs 64 45 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommandWorker AbstractXmlTagCompletionCommandHandler Read

Things We Need A "Context Free" Background UI

Code File Line Column Project Containing Member Containing Type Kind Repository
using (context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Extract_Interface)) \src\EditorFeatures\Core\ExtractInterface\AbstractExtractInterfaceCommandHandler.cs 40 45 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommand AbstractExtractInterfaceCommandHandler Read
using (var scope = context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Waiting_for_background_work_to_finish)) \src\VisualStudio\Core\Def\CodeCleanup\AbstractCodeCleanUpFixer.cs 217 57 Microsoft.VisualStudio.LanguageServices FixAsync AbstractCodeCleanUpFixer Read
using (var scope = context.OperationContext.AddScope(allowCancellation: true, description: EditorFeaturesResources.Applying_changes)) \src\VisualStudio\Core\Def\CodeCleanup\AbstractCodeCleanUpFixer.cs 226 57 Microsoft.VisualStudio.LanguageServices FixAsync AbstractCodeCleanUpFixer Read
using (context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Formatting_document)) \src\EditorFeatures\Core\Formatting\FormatCommandHandler.FormatDocument.cs 37 45 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommand FormatCommandHandler Read
using var scope = context.AddScope(allowCancellation: true, ServicesVSResources.Updating_severity); \src\VisualStudio\Core\Def\TableDataSource\Suppression\VisualStudioDiagnosticListTableCommandHandler.cs 206 43 Microsoft.VisualStudio.LanguageServices SetSeverityHandlerAsync VisualStudioDiagnosticListTableCommandHandler Read
using var scope = context.AddScope(allowCancellation: true, description); \src\VisualStudio\Core\Def\Packaging\PackageInstallerServiceFactory_UndoRedo.cs 185 43 Microsoft.VisualStudio.LanguageServices DoWorkerAsync InstallPackageUndoUnit Read
using var scope = context.AddScope(allowCancellation: true, description); \src\VisualStudio\Core\Def\Packaging\PackageInstallerServiceFactory_UndoRedo.cs 147 43 Microsoft.VisualStudio.LanguageServices DoWorkerAsync UninstallPackageUndoUnit Read
using var scope1 = context.AddScope(allowCancellation: true, description: ""); \src\VisualStudio\Core\Impl\SolutionExplorer\AnalyzersCommandHandler.cs 475 56 Microsoft.VisualStudio.LanguageServices.Implementation SetSeverityHandlerAsync AnalyzersCommandHandler Read
using var scope = uiThreadOperationContext.AddScope(allowCancellation: true, EditorFeaturesWpfResources.Resetting_Interactive); \src\EditorFeatures\Core.Wpf\Interactive\ResetInteractive.cs 104 56 Microsoft.CodeAnalysis.EditorFeatures.Wpf ResetInteractiveAsync ResetInteractive Read
using (context.OperationContext.AddScope(allowCancellation: true, EditorFeaturesResources.Formatting_document)) \src\EditorFeatures\Core\Formatting\FormatCommandHandler.FormatDocument.cs 37 45 Microsoft.CodeAnalysis.EditorFeatures (netcoreapp3.1, netstandard2.0) ExecuteCommand FormatCommandHandler Read
tmat commented 2 years ago

Signature change: https://github.com/dotnet/roslyn/issues/62135

CyrusNajmabadi commented 2 years ago

You mean 'chang sig' right? Not 'sig help'?