From b247c10516f3dc562ea34b5d61d0bc6b1ccc4833 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Tue, 9 Aug 2022 11:06:36 -0700 Subject: [PATCH] Fix sort order of fixes with diagnostics (#157682) Fixes #157634 --- src/vs/editor/contrib/codeAction/browser/codeAction.ts | 2 +- .../editor/contrib/codeAction/test/browser/codeAction.test.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/vs/editor/contrib/codeAction/browser/codeAction.ts b/src/vs/editor/contrib/codeAction/browser/codeAction.ts index 009f7b05ca8..0dc92b92a66 100644 --- a/src/vs/editor/contrib/codeAction/browser/codeAction.ts +++ b/src/vs/editor/contrib/codeAction/browser/codeAction.ts @@ -72,7 +72,7 @@ class ManagedCodeActionSet extends Disposable implements CodeActionSet { private static codeActionsComparator({ action: a }: CodeActionItem, { action: b }: CodeActionItem): number { if (isNonEmptyArray(a.diagnostics)) { - return -1; + return isNonEmptyArray(b.diagnostics) ? ManagedCodeActionSet.codeActionsPreferredComparator(a, b) : -1; } else if (isNonEmptyArray(b.diagnostics)) { return 1; } else { diff --git a/src/vs/editor/contrib/codeAction/test/browser/codeAction.test.ts b/src/vs/editor/contrib/codeAction/test/browser/codeAction.test.ts index 93005d11387..12886374a20 100644 --- a/src/vs/editor/contrib/codeAction/test/browser/codeAction.test.ts +++ b/src/vs/editor/contrib/codeAction/test/browser/codeAction.test.ts @@ -119,9 +119,9 @@ suite('CodeAction', () => { disposables.add(registry.register('fooLang', provider)); const expected = [ - // CodeActions with a diagnostics array are shown first ordered by diagnostics.message - new CodeActionItem(testData.diagnostics.abc, provider), + // CodeActions with a diagnostics array are shown first without further sorting new CodeActionItem(testData.diagnostics.bcd, provider), + new CodeActionItem(testData.diagnostics.abc, provider), // CodeActions without diagnostics are shown in the given order without any further sorting new CodeActionItem(testData.command.abc, provider),