From d4620677e5ed1bf7f59c54706d09d5f458b0d6a8 Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 2 Jul 2015 16:03:08 +0200 Subject: [PATCH] IDEA-141973 Java else if: missing select word step --- .../wordSelection/IfStatementSelectioner.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/editorActions/wordSelection/IfStatementSelectioner.java b/java/java-impl/src/com/intellij/codeInsight/editorActions/wordSelection/IfStatementSelectioner.java index 2acc887e1678..89cb30a2a305 100644 --- a/java/java-impl/src/com/intellij/codeInsight/editorActions/wordSelection/IfStatementSelectioner.java +++ b/java/java-impl/src/com/intellij/codeInsight/editorActions/wordSelection/IfStatementSelectioner.java @@ -40,6 +40,14 @@ public class IfStatementSelectioner extends BasicSelectioner { final PsiKeyword elseKeyword = statement.getElseElement(); if (elseKeyword != null) { + final PsiStatement then = statement.getThenBranch(); + if (then != null) { + final TextRange thenRange = new TextRange(statement.getTextRange().getStartOffset(), then.getTextRange().getEndOffset()); + if (thenRange.contains(cursorOffset)) { + result.addAll(expandToWholeLine(editorText, thenRange, false)); + } + } + result.addAll(expandToWholeLine(editorText, new TextRange(elseKeyword.getTextRange().getStartOffset(), statement.getTextRange().getEndOffset()), @@ -50,10 +58,13 @@ public class IfStatementSelectioner extends BasicSelectioner { PsiIfStatement elseIf = (PsiIfStatement)branch; final PsiKeyword element = elseIf.getElseElement(); if (element != null) { - result.addAll(expandToWholeLine(editorText, - new TextRange(elseKeyword.getTextRange().getStartOffset(), - elseIf.getThenBranch().getTextRange().getEndOffset()), - false)); + final PsiStatement elseThen = elseIf.getThenBranch(); + if (elseThen != null) { + result.addAll(expandToWholeLine(editorText, + new TextRange(elseKeyword.getTextRange().getStartOffset(), + elseThen.getTextRange().getEndOffset()), + false)); + } } } }