diff --git a/src/EditorFeatures/Core/Implementation/CommentSelection/AbstractCommentSelectionBase.cs b/src/EditorFeatures/Core/Implementation/CommentSelection/AbstractCommentSelectionBase.cs index e5f3be37e44d60f2e76d713ae992730b8fee7964..f3ce3e6493957dca2d259819e0e141ff6e99be34 100644 --- a/src/EditorFeatures/Core/Implementation/CommentSelection/AbstractCommentSelectionBase.cs +++ b/src/EditorFeatures/Core/Implementation/CommentSelection/AbstractCommentSelectionBase.cs @@ -142,8 +142,15 @@ internal bool ExecuteCommand(ITextView textView, ITextBuffer subjectBuffer, TCom using (var transaction = new CaretPreservingEditTransaction(title, textView, _undoHistoryRegistry, _editorOperationsFactoryService)) { var formattedDocument = Format(service, subjectBuffer.CurrentSnapshot, trackingSnapshotSpans, CancellationToken.None); - formattedDocument?.Project.Solution.Workspace.ApplyDocumentChanges(formattedDocument, CancellationToken.None); - transaction.Complete(); + if (formattedDocument == null) + { + transaction.Cancel(); + } + else + { + formattedDocument.Project.Solution.Workspace.ApplyDocumentChanges(formattedDocument, CancellationToken.None); + transaction.Complete(); + } } }