From 58eef253dff4a11c244edbda51071690aad866ec Mon Sep 17 00:00:00 2001 From: anna Date: Thu, 24 Mar 2011 11:55:58 +0100 Subject: [PATCH] select whole line when caret is out of statement --- .../introduceVariable/IntroduceVariableBase.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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 e75a44e48d8b..001e566b46c3 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceVariable/IntroduceVariableBase.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceVariable/IntroduceVariableBase.java @@ -90,7 +90,11 @@ public abstract class IntroduceVariableBase extends IntroduceHandlerBase impleme final PsiElement[] statementsInRange = findStatementsAtOffset(editor, file, offset); //try line selection - if (statementsInRange.length == 1 && (PsiUtil.hasErrorElementChild(statementsInRange[0]) || !PsiUtil.isStatement(statementsInRange[0]) || isPreferStatements())) { + if (statementsInRange.length == 1 && (PsiUtil.hasErrorElementChild(statementsInRange[0]) || + !PsiUtil.isStatement(statementsInRange[0]) || + statementsInRange[0].getTextRange().getStartOffset() >= offset || + statementsInRange[0].getTextRange().getEndOffset() <= offset || + isPreferStatements())) { selectionModel.selectLineAtCaret(); if (findExpressionInRange(project, file, selectionModel.getSelectionStart(), selectionModel.getSelectionEnd()) == null) { selectionModel.removeSelection();