From 908a9d0d48281a9fcd7485a2a5444457d8271943 Mon Sep 17 00:00:00 2001 From: Yaroslav Lepenkin Date: Mon, 3 Oct 2016 19:41:55 +0300 Subject: [PATCH] [Parameter Name Hints] show all single letter params --- .../impl/ParameterNameHintsManager.java | 22 ++++--------------- .../daemon/inlays/InlayParameterHintsTest.kt | 3 ++- 2 files changed, 6 insertions(+), 19 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/ParameterNameHintsManager.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/ParameterNameHintsManager.java index 3e268e88ff2b..f308388bab40 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/ParameterNameHintsManager.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/ParameterNameHintsManager.java @@ -41,8 +41,6 @@ public class ParameterNameHintsManager { Couple.of("min", "max"), Couple.of("format", "arg") ); - - private static final Set ALLOWED_PARAMETER_NAME_CHARS = ContainerUtil.newHashSet('x', 'y', 'z', 'w', 'h'); private static final Set COMMON_METHOD_NAMES = ContainerUtil.newHashSet("set", "print", "println"); @@ -163,30 +161,18 @@ public class ParameterNameHintsManager { final int totalDescriptors = descriptors.size(); if (totalDescriptors == 1 && shouldIgnoreSingleHint(parameters, descriptors) - || totalDescriptors == 2 && parameters.length == 2 && isParamPairToIgnore(descriptors.get(0), descriptors.get(1)) - || countOneCharLengthHints(descriptors) == totalDescriptors && !containsAnyMeaningfull(descriptors)) { + || totalDescriptors == 2 && parameters.length == 2 && isParamPairToIgnore(descriptors.get(0), descriptors.get(1))) + { return ContainerUtil.emptyList(); } return descriptors; } - - - private static long countOneCharLengthHints(List inlays) { - return inlays.stream().filter((e) -> e.getText().length() == 1).count(); - } - + private static boolean shouldIgnoreSingleHint(@NotNull PsiParameter[] parameters, List descriptors) { return isStringLiteral(descriptors.get(0)) && !hasMultipleStringParams(parameters); } - - private static boolean containsAnyMeaningfull(List descriptors) { - return descriptors.stream().anyMatch((e) -> { - String text = e.getText(); - return text.length() == 1 && ALLOWED_PARAMETER_NAME_CHARS.contains(text.charAt(0)); - }); - } - + private static boolean hasMultipleStringParams(PsiParameter[] parameters) { int stringParams = 0; for (PsiParameter parameter : parameters) { diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/inlays/InlayParameterHintsTest.kt b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/inlays/InlayParameterHintsTest.kt index f18768d88c8c..6f18a4fe58d1 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/inlays/InlayParameterHintsTest.kt +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/inlays/InlayParameterHintsTest.kt @@ -601,13 +601,14 @@ class Test { drawRect(x, y, 10, 12); } + void blah(int a, int b) {} void draw(int x, int y, int z) {} void drawRect(int x, int y, int w, int h) {} } """) - onLineStartingWith("blah").assertNoInlays() + onLineStartingWith("blah").assertInlays("a->1", "b->2") onLineStartingWith("draw").assertInlays("x->10", "y->20") onLineStartingWith("drawRect").assertInlays("w->10", "h->12") }