From fec753ddb6a7e3eeb2aa4d374c80c028a673a53c Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 31 Aug 2017 19:22:24 +0200 Subject: [PATCH] IDEA-178297 Please improve suggested variable names for Java Optional<> types --- .../impl/source/codeStyle/JavaCodeStyleManagerImpl.java | 6 +++++- .../java/refactoring/RenameSuggestionsTest.groovy | 8 ++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaCodeStyleManagerImpl.java b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaCodeStyleManagerImpl.java index 0a42deeab943..80fd427553c3 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaCodeStyleManagerImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaCodeStyleManagerImpl.java @@ -348,7 +348,11 @@ public class JavaCodeStyleManagerImpl extends JavaCodeStyleManager { if (psiClass != null && CommonClassNames.JAVA_UTIL_OPTIONAL.equals(psiClass.getQualifiedName()) && ((PsiClassType)type).getParameterCount() == 1) { PsiType optionalContent = ((PsiClassType)type).getParameters()[0]; - Collections.addAll(suggestions, suggestVariableNameByType(optionalContent, variableKind, correctKeywords, false)); + String[] contentSuggestions = suggestVariableNameByType(optionalContent, variableKind, correctKeywords, false); + Collections.addAll(suggestions, contentSuggestions); + for (String s : contentSuggestions) { + Collections.addAll(suggestions, getSuggestionsByName("optional" + StringUtil.capitalize(s), variableKind, false, correctKeywords)); + } } suggestNamesFromGenericParameters(type, variableKind, suggestions, correctKeywords); diff --git a/java/java-tests/testSrc/com/intellij/java/refactoring/RenameSuggestionsTest.groovy b/java/java-tests/testSrc/com/intellij/java/refactoring/RenameSuggestionsTest.groovy index 700b58136076..55cd49fbbeaf 100644 --- a/java/java-tests/testSrc/com/intellij/java/refactoring/RenameSuggestionsTest.groovy +++ b/java/java-tests/testSrc/com/intellij/java/refactoring/RenameSuggestionsTest.groovy @@ -94,7 +94,7 @@ class Foo {{ Optional o = Optional.of(typeValue); }} """) - assert suggestions == ["typeValue1", "value", "foo", "fooOptional", "optional", "o"] + assert suggestions == ["typeValue1", "value", "foo", "optionalFoo", "fooOptional", "optional", "o"] } void "test by Optional_ofNullable initializer"() { @@ -105,7 +105,7 @@ class Foo {{ Optional o = Optional.ofNullable(typeValue); }} """) - assert suggestions == ["typeValue1", "value", "foo", "fooOptional", "optional", "o"] + assert suggestions == ["typeValue1", "value", "foo", "optionalFoo", "fooOptional", "optional", "o"] } void "test by Optional_of initializer with constructor"() { @@ -115,7 +115,7 @@ class Foo {{ Optional o = Optional.ofNullable(new Foo()); }} """) - assert suggestions == ["foo", "fooOptional", "optional", "o"] + assert suggestions == ["foo", "optionalFoo", "fooOptional", "optional", "o"] } void "test by Optional_flatMap"() { @@ -129,7 +129,7 @@ class Person { } class Car {} """) - assert suggestions == ["car", "carOptional", "optional", "o"] + assert suggestions == ["car", "optionalCar", "carOptional", "optional", "o"] } private doTestSuggestionAvailable(String text, String... expectedSuggestions) {