package org.elixir_lang.code_insight.highlighting.brace_matcher;
import com.intellij.codeInsight.highlighting.PairedBraceMatcherAdapter;
import com.intellij.lang.BracePair;
import com.intellij.openapi.editor.highlighter.HighlighterIterator;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.psi.tree.IElementType;
import org.elixir_lang.ElixirLanguage;
import org.elixir_lang.psi.ElixirTypes;
import org.jetbrains.annotations.Nullable;
public class NonTrivial extends PairedBraceMatcherAdapter {
public NonTrivial() {
super(new Paired(), ElixirLanguage.INSTANCE);
}
@Nullable
@Override
public BracePair findPair(boolean left, HighlighterIterator iterator, CharSequence fileText, FileType fileType) {
BracePair pair = super.findPair(left, iterator, fileText, fileType);
if (pair == Paired.DO_END || pair == Paired.FN_END) {
iterator.advance();
if (!iterator.atEnd()) {
IElementType tokenType = iterator.getTokenType();
if (tokenType == ElixirTypes.KEYWORD_PAIR_COLON) {
pair = null;
}
}
iterator.retreat();
}
return pair;
}
}