</BUG>
boolean isLBraceToken(HighlighterIterator iterator,CharSequence fileText, FileType fileType);
boolean isRBraceToken(HighlighterIterator iterator,CharSequence fileText, FileType fileType);
boolean isPairBraces(IElementType tokenType,IElementType tokenType2);
boolean isStructuralBrace(HighlighterIterator iterator,CharSequence text, FileType fileType);
<BUG>IElementType getTokenType(char ch, HighlighterIterator iterator);
boolean isPairedBracesAllowedBeforeType(@NotNull IElementType lbraceType, @Nullable IElementType contextType);
boolean isStrictTagMatching(final FileType fileType, final int group);
boolean areTagsCaseSensitive(FileType fileType, int tokenGroup);
@Nullable
String getTagName(CharSequence fileText, HighlighterIterator iterator);</BUG>
int getCodeConstructStart(final PsiFile file, int openingBraceOffset);

import com.intellij.psi.PsiFile;
import com.intellij.psi.tree.IElementType;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public interface BraceMatcher {
ExtensionPointName<FileTypeExtensionPoint<BraceMatcher>> EP_NAME = new ExtensionPointName<FileTypeExtensionPoint<BraceMatcher>>("com.intellij.braceMatcher");
int getBraceTokenGroupId(IElementType tokenType);
boolean isLBraceToken(HighlighterIterator iterator,CharSequence fileText, FileType fileType);
boolean isRBraceToken(HighlighterIterator iterator,CharSequence fileText, FileType fileType);
boolean isPairBraces(IElementType tokenType,IElementType tokenType2);
boolean isStructuralBrace(HighlighterIterator iterator,CharSequence text, FileType fileType);
@Nullable IElementType getOppositeBraceTokenType(@NotNull IElementType type);
boolean isPairedBracesAllowedBeforeType(@NotNull IElementType lbraceType, @Nullable IElementType contextType);
int getCodeConstructStart(final PsiFile file, int openingBraceOffset);
