diff --git a/java/java-impl/src/com/intellij/codeInsight/highlighting/JavaPairedBraceMatcher.java b/java/java-impl/src/com/intellij/codeInsight/highlighting/JavaPairedBraceMatcher.java index af53c35d6e97..e0ba601a07cf 100644 --- a/java/java-impl/src/com/intellij/codeInsight/highlighting/JavaPairedBraceMatcher.java +++ b/java/java-impl/src/com/intellij/codeInsight/highlighting/JavaPairedBraceMatcher.java @@ -23,8 +23,15 @@ import com.intellij.openapi.fileTypes.FileType; import com.intellij.psi.JavaTokenType; import com.intellij.psi.impl.source.tree.StdTokenSets; import com.intellij.psi.tree.IElementType; +import com.intellij.psi.tree.TokenSet; public class JavaPairedBraceMatcher extends PairedBraceMatcherAdapter { + private static final TokenSet TYPE_TOKENS = + TokenSet.orSet(StdTokenSets.WHITE_SPACE_OR_COMMENT_BIT_SET, + TokenSet.create(JavaTokenType.IDENTIFIER, JavaTokenType.COMMA, + JavaTokenType.RBRACKET, JavaTokenType.LBRACKET, //arrays + JavaTokenType.QUEST, JavaTokenType.EXTENDS_KEYWORD, JavaTokenType.SUPER_KEYWORD));//wildcards + public JavaPairedBraceMatcher() { super(new JavaBraceMatcher(), JavaLanguage.INSTANCE); } @@ -75,9 +82,7 @@ public class JavaPairedBraceMatcher extends PairedBraceMatcherAdapter { continue; } - if (!StdTokenSets.WHITE_SPACE_OR_COMMENT_BIT_SET.contains(tokenType) && - tokenType != JavaTokenType.IDENTIFIER && - tokenType != JavaTokenType.COMMA) { + if (!TYPE_TOKENS.contains(tokenType)) { return false; } } diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/highlighting/JavaBraceMatcherTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/highlighting/JavaBraceMatcherTest.java index ca527ff68658..d90b336cff4d 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/highlighting/JavaBraceMatcherTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/highlighting/JavaBraceMatcherTest.java @@ -24,10 +24,10 @@ public class JavaBraceMatcherTest extends LightCodeInsightFixtureTestCase { public void testGenerics() { myFixture.configureByText("a.java", "import java.util.ArrayList;" + "class A {" + - " ArrayList f;" + + " ArrayList f;" + "}"); final int offset = BraceMatchingUtil.getMatchedBraceOffset(myFixture.getEditor(), true, myFixture.getFile()); - assertTrue(offset == 54); + assertEquals(66, offset); } public void testBrokenText() {