From d8704549b4b1fc2587689ff025ee3e5de77b8382 Mon Sep 17 00:00:00 2001 From: anna Date: Wed, 3 Jul 2013 15:24:40 +0200 Subject: [PATCH] try whole statement preselection when incomplete --- .../IntroduceVariableBase.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/introduceVariable/IntroduceVariableBase.java b/java/java-impl/src/com/intellij/refactoring/introduceVariable/IntroduceVariableBase.java index 740c2cc15b3c..9d64136b35a3 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceVariable/IntroduceVariableBase.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceVariable/IntroduceVariableBase.java @@ -134,12 +134,18 @@ public abstract class IntroduceVariableBase extends IntroduceHandlerBase { } else { int selection; - PsiExpression expression = expressions.get(0); - if (expression instanceof PsiReferenceExpression && ((PsiReferenceExpression)expression).resolve() instanceof PsiLocalVariable) { - selection = 1; - } - else { - selection = -1; + if (statementsInRange.length == 1 && + statementsInRange[0] instanceof PsiExpressionStatement && + PsiUtilCore.hasErrorElementChild(statementsInRange[0])) { + selection = expressions.indexOf(((PsiExpressionStatement)statementsInRange[0]).getExpression()); + } else { + PsiExpression expression = expressions.get(0); + if (expression instanceof PsiReferenceExpression && ((PsiReferenceExpression)expression).resolve() instanceof PsiLocalVariable) { + selection = 1; + } + else { + selection = -1; + } } IntroduceTargetChooser.showChooser(editor, expressions, new Pass(){