Skip to content

Commit 829bfc6

Browse files
committed
Impl. Brace Matcher for Expression Language
1 parent 5d9b780 commit 829bfc6

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package fr.adrienbrault.idea.symfony2plugin.expressionLanguage;
2+
3+
import com.intellij.lang.BracePair;
4+
import com.intellij.lang.PairedBraceMatcher;
5+
import com.intellij.psi.PsiFile;
6+
import com.intellij.psi.tree.IElementType;
7+
import fr.adrienbrault.idea.symfony2plugin.expressionLanguage.psi.ExpressionLanguageTypes;
8+
import org.jetbrains.annotations.NotNull;
9+
import org.jetbrains.annotations.Nullable;
10+
11+
public class ExpressionLanguageBraceMatcher implements PairedBraceMatcher {
12+
private static BracePair[] PAIRS = {
13+
new BracePair(
14+
ExpressionLanguageTypes.L_ROUND_BRACKET,
15+
ExpressionLanguageTypes.R_ROUND_BRACKET,
16+
true
17+
),
18+
new BracePair(
19+
ExpressionLanguageTypes.L_SQUARE_BRACKET,
20+
ExpressionLanguageTypes.R_SQUARE_BRACKET,
21+
true
22+
),
23+
new BracePair(
24+
ExpressionLanguageTypes.L_CURLY_BRACKET,
25+
ExpressionLanguageTypes.R_CURLY_BRACKET,
26+
true
27+
),
28+
};
29+
30+
@Override
31+
public BracePair[] getPairs() {
32+
return PAIRS;
33+
}
34+
35+
@Override
36+
public boolean isPairedBracesAllowedBeforeType(@NotNull IElementType lbraceType, @Nullable IElementType contextType) {
37+
return false;
38+
}
39+
40+
@Override
41+
public int getCodeConstructStart(PsiFile file, int openingBraceOffset) {
42+
return openingBraceOffset;
43+
}
44+
}

0 commit comments

Comments
 (0)