diff --git a/RegExpSupport/src/org/intellij/lang/regexp/RegExpParserDefinition.java b/RegExpSupport/src/org/intellij/lang/regexp/RegExpParserDefinition.java index 1117a78d20bd..26826104b278 100644 --- a/RegExpSupport/src/org/intellij/lang/regexp/RegExpParserDefinition.java +++ b/RegExpSupport/src/org/intellij/lang/regexp/RegExpParserDefinition.java @@ -20,9 +20,7 @@ import com.intellij.lang.ASTNode; import com.intellij.lang.ParserDefinition; import com.intellij.lang.PsiParser; import com.intellij.lexer.Lexer; -import com.intellij.openapi.Disposable; import com.intellij.openapi.project.Project; -import com.intellij.openapi.util.Disposer; import com.intellij.psi.FileViewProvider; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; @@ -32,8 +30,6 @@ import com.intellij.psi.tree.IFileElementType; import com.intellij.psi.tree.TokenSet; import org.intellij.lang.regexp.psi.impl.*; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.annotations.TestOnly; import java.util.EnumSet; @@ -43,47 +39,42 @@ public class RegExpParserDefinition implements ParserDefinition { RegExpCapability.ALLOW_HORIZONTAL_WHITESPACE_CLASS, RegExpCapability.UNICODE_CATEGORY_SHORTHAND); - @TestOnly - public static void setTestCapability(@Nullable RegExpCapability capability, @NotNull Disposable parentDisposable) { - if (!CAPABILITIES.contains(capability)) { - CAPABILITIES.add(capability); - Disposer.register(parentDisposable, () -> CAPABILITIES.remove(capability)); - } - else { - CAPABILITIES.remove(capability); - Disposer.register(parentDisposable, () -> CAPABILITIES.add(capability)); - } - } - + @Override @NotNull public Lexer createLexer(Project project) { return new RegExpLexer(CAPABILITIES); } + @Override public PsiParser createParser(Project project) { return new RegExpParser(CAPABILITIES); } + @Override public IFileElementType getFileNodeType() { return RegExpElementTypes.REGEXP_FILE; } + @Override @NotNull public TokenSet getWhitespaceTokens() { // trick to hide quote tokens from parser... should actually go into the lexer return TokenSet.create(RegExpTT.QUOTE_BEGIN, RegExpTT.QUOTE_END, TokenType.WHITE_SPACE); } + @Override @NotNull public TokenSet getStringLiteralElements() { return TokenSet.EMPTY; } + @Override @NotNull public TokenSet getCommentTokens() { return COMMENT_TOKENS; } + @Override @NotNull public PsiElement createElement(ASTNode node) { final IElementType type = node.getElementType(); @@ -132,10 +123,12 @@ public class RegExpParserDefinition implements ParserDefinition { return new ASTWrapperPsiElement(node); } + @Override public PsiFile createFile(FileViewProvider viewProvider) { return new RegExpFile(viewProvider, RegExpLanguage.INSTANCE); } + @Override public SpaceRequirements spaceExistanceTypeBetweenTokens(ASTNode left, ASTNode right) { return SpaceRequirements.MUST_NOT; } diff --git a/RegExpSupport/test/org/intellij/lang/regexp/RegExpCompletionTest.java b/RegExpSupport/test/org/intellij/lang/regexp/RegExpCompletionTest.java index c674c11b31bd..b2e82d5cfa07 100644 --- a/RegExpSupport/test/org/intellij/lang/regexp/RegExpCompletionTest.java +++ b/RegExpSupport/test/org/intellij/lang/regexp/RegExpCompletionTest.java @@ -43,22 +43,6 @@ public class RegExpCompletionTest extends CodeInsightFixtureTestCase { return Character.toUpperCase(testName.charAt(0)) + testName.substring(1) + "Expected" + ".regexp"; } - public void testPosixBracketExpression() { - RegExpParserDefinition.setTestCapability(RegExpCapability.POSIX_BRACKET_EXPRESSIONS, getTestRootDisposable()); - - myFixture.configureByText(RegExpFileType.INSTANCE, "[[:alp"); - myFixture.completeBasic(); - myFixture.checkResult("[[:alpha:]"); - } - - public void testNegatePosixBracketExpression() { - RegExpParserDefinition.setTestCapability(RegExpCapability.POSIX_BRACKET_EXPRESSIONS, getTestRootDisposable()); - - myFixture.configureByText(RegExpFileType.INSTANCE, "[[:^alp"); - myFixture.completeBasic(); - myFixture.checkResult("[[:^alpha:]"); - } - public void testNamedCharacter() { myFixture.configureByText(RegExpFileType.INSTANCE, "\\N{SMILE}"); final LookupElement[] elements = myFixture.completeBasic();