From 9aaae8e62e78dbe05bd93c81362295577a64d9a2 Mon Sep 17 00:00:00 2001 From: Gregory Shrago Date: Wed, 8 Jun 2011 23:17:16 +0400 Subject: [PATCH] begin..end brace matcher --- .../PairedBraceMatcherAdapter.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/highlighting/PairedBraceMatcherAdapter.java b/platform/lang-impl/src/com/intellij/codeInsight/highlighting/PairedBraceMatcherAdapter.java index 261a0820c440..58bfade6356a 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/highlighting/PairedBraceMatcherAdapter.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/highlighting/PairedBraceMatcherAdapter.java @@ -30,7 +30,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -class PairedBraceMatcherAdapter implements NontrivialBraceMatcher { +public class PairedBraceMatcherAdapter implements NontrivialBraceMatcher { private final PairedBraceMatcher myMatcher; private final Language myLanguage; @@ -47,22 +47,22 @@ class PairedBraceMatcherAdapter implements NontrivialBraceMatcher { return -1; } - public boolean isLBraceToken(HighlighterIterator iterator, CharSequence fileText, FileType fileType) { + @Nullable + public BracePair findPair(boolean left, HighlighterIterator iterator, CharSequence fileText, FileType fileType) { final IElementType tokenType = iterator.getTokenType(); final BracePair[] pairs = myMatcher.getPairs(); for (BracePair pair : pairs) { - if (tokenType == pair.getLeftBraceType()) return true; + if (tokenType == (left? pair.getLeftBraceType() : pair.getRightBraceType())) return pair; } - return false; + return null; + } + + public boolean isLBraceToken(HighlighterIterator iterator, CharSequence fileText, FileType fileType) { + return findPair(true, iterator, fileText, fileType) != null; } public boolean isRBraceToken(HighlighterIterator iterator, CharSequence fileText, FileType fileType) { - final IElementType tokenType = iterator.getTokenType(); - final BracePair[] pairs = myMatcher.getPairs(); - for (BracePair pair : pairs) { - if (tokenType == pair.getRightBraceType()) return true; - } - return false; + return findPair(false, iterator, fileText, fileType) != null; } public IElementType getOppositeBraceTokenType(@NotNull final IElementType type) {