[java] IDEA-378236 Double-clicking the closing bracket line of a switch block doesn’t select the entire block inside the brackets

- exclude braces from selection

GitOrigin-RevId: 1a0d1d6a237e9069b60321668c2ef9f570a82464
This commit is contained in:
Mikhail Pyltsin
2025-09-04 12:37:14 +00:00
committed by intellij-monorepo-bot
parent 8f00015290
commit ccc6c0ee82
10 changed files with 127 additions and 0 deletions
@@ -5,6 +5,7 @@ import com.intellij.lang.ASTNode;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.util.TextRange;
import com.intellij.psi.JavaTokenType;
import com.intellij.psi.PsiElement;
import com.intellij.psi.TokenType;
import com.intellij.psi.impl.source.BasicJavaAstTreeUtil;
@@ -22,6 +23,8 @@ public final class CaseStatementsSelectioner extends AbstractBasicBackBasicSelec
public boolean canSelect(@NotNull PsiElement e) {
ASTNode node = BasicJavaAstTreeUtil.toNode(e);
return node != null &&
!BasicJavaAstTreeUtil.is(node, JavaTokenType.RBRACE) &&
!BasicJavaAstTreeUtil.is(node, JavaTokenType.LBRACE) &&
BasicJavaAstTreeUtil.is(node.getTreeParent(), BASIC_CODE_BLOCK) &&
BasicJavaAstTreeUtil.is(node.getTreeParent().getTreeParent(), BASIC_SWITCH_STATEMENT);
}
@@ -52,6 +52,10 @@ public abstract class AbstractBasicJavaSelectWordTest extends SelectWordTestBase
public void testSwitch() { doTest("java"); }
public void testSwitch2() { doTest("java"); }
public void testSwitch3() { doTest("java"); }
public void testSwitchStart1() { doTest("java"); }
public void testSwitchStart2() { doTest("java"); }
public void testSwitchEnd1() { doTest("java"); }
public void testSwitchEnd2() { doTest("java"); }
public void testJavaStartLine() { doTest("java"); }
public void testJavaEndLine() { doTest("java", false); }
@@ -0,0 +1,15 @@
public class TestSwitchSelect
{
public static void main(String[] args)
{
switch (type) <selection>{
case 1:
break;
case 2:
break;
default:
break;
<caret>}</selection>
}
}
@@ -0,0 +1,15 @@
public class TestSwitchSelect
{
public static void main(String[] args)
{
switch (type) {
case 1:
break;
case 2:
break;
default:
break;
<caret>}
}
}
@@ -0,0 +1,15 @@
public class TestSwitchSelect
{
public static void main(String[] args)
{
switch (type) <selection>{
case 1:
break;
case 2:
break;
default:
break;
}<caret></selection>
}
}
@@ -0,0 +1,15 @@
public class TestSwitchSelect
{
public static void main(String[] args)
{
switch (type) {
case 1:
break;
case 2:
break;
default:
break;
}<caret>
}
}
@@ -0,0 +1,15 @@
public class TestSwitchSelect
{
public static void main(String[] args)
{
switch (type) <selection><caret>{
case 1:
break;
case 2:
break;
default:
break;
}</selection>
}
}
@@ -0,0 +1,15 @@
public class TestSwitchSelect
{
public static void main(String[] args)
{
switch (type) <caret>{
case 1:
break;
case 2:
break;
default:
break;
}
}
}
@@ -0,0 +1,15 @@
public class TestSwitchSelect
{
public static void main(String[] args)
{
switch (type) <selection>{<caret>
case 1:
break;
case 2:
break;
default:
break;
}</selection>
}
}
@@ -0,0 +1,15 @@
public class TestSwitchSelect
{
public static void main(String[] args)
{
switch (type) {<caret>
case 1:
break;
case 2:
break;
default:
break;
}
}
}