mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
name suggestions: by assignment context (IDEA-167826)
This commit is contained in:
+9
-1
@@ -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);
|
||||
}
|
||||
|
||||
+10
@@ -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 = \"<caret>\";}}");
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user