From 73914a9078a050002bab0f2e439462104df766d0 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Mon, 16 Nov 2020 10:34:52 +0300 Subject: [PATCH] =?UTF-8?q?#1434=20=D0=97=D0=B0=D0=BF=D0=BE=D0=BB=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20isPreferred=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D0=BA=D0=B2=D0=B8=D0=BA-=D1=84=D0=B8=D0=BA=D1=81=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bsl/languageserver/providers/CodeActionProvider.java | 3 +++ .../languageserver/providers/CodeActionProviderTest.java | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/CodeActionProvider.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/CodeActionProvider.java index fc9c8d91120..e4dca5e0282 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/CodeActionProvider.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/CodeActionProvider.java @@ -73,6 +73,9 @@ public static List createCodeActions( codeAction.setDiagnostics(diagnostics); codeAction.setEdit(edit); codeAction.setKind(CodeActionKind.QuickFix); + if (diagnostics.size() == 1) { + codeAction.setIsPreferred(Boolean.TRUE); + } return Collections.singletonList(codeAction); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/CodeActionProviderTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/CodeActionProviderTest.java index 9e8581d60bb..36ae7ae92a9 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/CodeActionProviderTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/CodeActionProviderTest.java @@ -42,6 +42,7 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.annotation.DirtiesContext; +import javax.annotation.CheckForNull; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; @@ -102,6 +103,7 @@ void testGetCodeActions() { .anyMatch(codeAction -> codeAction.getDiagnostics().contains(diagnostics.get(0))) .anyMatch(codeAction -> codeAction.getDiagnostics().contains(diagnostics.get(1))) .anyMatch(codeAction -> codeAction.getKind().equals(CodeActionKind.QuickFix)) + .allMatch(codeAction -> (codeAction.getDiagnostics().size() == 1) == toBoolean(codeAction.getIsPreferred())) ; } @@ -163,4 +165,11 @@ void testOnly() { .containsOnly(CodeActionKind.Refactor) ; } + + private static boolean toBoolean(@CheckForNull Boolean value) { + if (value == null) { + return false; + } + return value; + } } \ No newline at end of file