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 eceeeb26e26f..8d122c93729f 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 @@ -783,7 +783,7 @@ public class JavaCodeStyleManagerImpl extends JavaCodeStyleManager { } } } - else if (expr.getParent() instanceof PsiAssignmentExpression && variableKind == VariableKind.PARAMETER) { + else if (expr.getParent() instanceof PsiAssignmentExpression) { final PsiAssignmentExpression assignmentExpression = (PsiAssignmentExpression)expr.getParent(); if (expr == assignmentExpression.getRExpression()) { final PsiExpression leftExpression = assignmentExpression.getLExpression(); @@ -800,6 +800,14 @@ public class JavaCodeStyleManagerImpl extends JavaCodeStyleManager { } } } + else if (expr.getParent() instanceof PsiLocalVariable) { + PsiVariable variable = (PsiVariable)expr.getParent(); + String variableName = variable.getName(); + if (variableName != null) { + String propertyName = variableNameToPropertyName(variableName, getVariableKind(variable)); + return new NamesByExprInfo(propertyName, getSuggestionsByName(propertyName, variableKind, false, correctKeywords)); + } + } return new NamesByExprInfo(null, ArrayUtil.EMPTY_STRING_ARRAY); } diff --git a/java/java-tests/testSrc/com/intellij/java/refactoring/NameSuggestionsByExpressionTest.java b/java/java-tests/testSrc/com/intellij/java/refactoring/NameSuggestionsByExpressionTest.java index 5e8d62e682b4..31484930ace3 100644 --- a/java/java-tests/testSrc/com/intellij/java/refactoring/NameSuggestionsByExpressionTest.java +++ b/java/java-tests/testSrc/com/intellij/java/refactoring/NameSuggestionsByExpressionTest.java @@ -46,4 +46,14 @@ public class NameSuggestionsByExpressionTest extends LightCodeInsightFixtureTest new String[] {"getParentOfType", "parentOfType", "ofType", "type", "parent", "s"}, nameInfo.names); } + + public void testNameByAssignmentContext() throws Exception { + PsiFile file = myFixture.configureByText("A.java", "class A {{String bar = \"\";}}"); + PsiExpression expression = PsiTreeUtil.getParentOfType(file.findElementAt(getEditor().getCaretModel().getOffset()), PsiExpression.class); + SuggestedNameInfo nameInfo = JavaCodeStyleManager.getInstance(getProject()) + .suggestVariableName(VariableKind.LOCAL_VARIABLE, null, expression, null); + Assert.assertArrayEquals("Suggested: " + Arrays.toString(nameInfo.names), + new String[] {"bar", "s"}, + nameInfo.names); + } }