From f74c53eb183a805381b704861d1b901673f0e543 Mon Sep 17 00:00:00 2001 From: peter Date: Mon, 10 Dec 2018 19:40:24 +0100 Subject: [PATCH] faster initialization of some ParserDefinitions --- .../org/intellij/lang/regexp/RegExpCapability.java | 7 +++++++ .../lang/regexp/RegExpParserDefinition.java | 13 +++---------- .../relaxNG/compact/RncParserDefinition.java | 5 ++--- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/RegExpSupport/src/org/intellij/lang/regexp/RegExpCapability.java b/RegExpSupport/src/org/intellij/lang/regexp/RegExpCapability.java index 6d532fd65c27..3db689866a80 100644 --- a/RegExpSupport/src/org/intellij/lang/regexp/RegExpCapability.java +++ b/RegExpSupport/src/org/intellij/lang/regexp/RegExpCapability.java @@ -15,6 +15,8 @@ */ package org.intellij.lang.regexp; +import java.util.EnumSet; + /** * @author yole */ @@ -121,4 +123,9 @@ public enum RegExpCapability { * MySQL character classes [=c=] [.class.] [:<:] [:>:] */ MYSQL_BRACKET_EXPRESSIONS, + ; + static final EnumSet DEFAULT_CAPABILITIES = EnumSet.of(NESTED_CHARACTER_CLASSES, + ALLOW_HORIZONTAL_WHITESPACE_CLASS, + UNICODE_CATEGORY_SHORTHAND, + EXTENDED_UNICODE_CHARACTER); } diff --git a/RegExpSupport/src/org/intellij/lang/regexp/RegExpParserDefinition.java b/RegExpSupport/src/org/intellij/lang/regexp/RegExpParserDefinition.java index da0adc5ed13d..1dbecef9cbb6 100644 --- a/RegExpSupport/src/org/intellij/lang/regexp/RegExpParserDefinition.java +++ b/RegExpSupport/src/org/intellij/lang/regexp/RegExpParserDefinition.java @@ -34,17 +34,10 @@ import org.jetbrains.annotations.NotNull; import java.util.EnumSet; public class RegExpParserDefinition implements ParserDefinition { - // whitespace to make handling char ranges simple, consider for example the following regex: [\Q[]\E-z] - private static final TokenSet WHITE_SPACE_TOKENS = TokenSet.create(RegExpTT.QUOTE_BEGIN, RegExpTT.QUOTE_END, TokenType.WHITE_SPACE); - private static final TokenSet COMMENT_TOKENS = TokenSet.create(RegExpTT.COMMENT); - private static final EnumSet CAPABILITIES = EnumSet.of(RegExpCapability.NESTED_CHARACTER_CLASSES, - RegExpCapability.ALLOW_HORIZONTAL_WHITESPACE_CLASS, - RegExpCapability.UNICODE_CATEGORY_SHORTHAND, - RegExpCapability.EXTENDED_UNICODE_CHARACTER); @NotNull public EnumSet getDefaultCapabilities() { - return CAPABILITIES; + return RegExpCapability.DEFAULT_CAPABILITIES; } @Override @@ -76,7 +69,7 @@ public class RegExpParserDefinition implements ParserDefinition { @Override @NotNull public TokenSet getWhitespaceTokens() { - return WHITE_SPACE_TOKENS; + return TokenSet.create(RegExpTT.QUOTE_BEGIN, RegExpTT.QUOTE_END, TokenType.WHITE_SPACE); } @Override @@ -88,7 +81,7 @@ public class RegExpParserDefinition implements ParserDefinition { @Override @NotNull public TokenSet getCommentTokens() { - return COMMENT_TOKENS; + return TokenSet.create(RegExpTT.COMMENT); } @Override diff --git a/xml/relaxng/src/org/intellij/plugins/relaxNG/compact/RncParserDefinition.java b/xml/relaxng/src/org/intellij/plugins/relaxNG/compact/RncParserDefinition.java index 2085d11b56da..8381b9674703 100644 --- a/xml/relaxng/src/org/intellij/plugins/relaxNG/compact/RncParserDefinition.java +++ b/xml/relaxng/src/org/intellij/plugins/relaxNG/compact/RncParserDefinition.java @@ -37,8 +37,7 @@ import org.intellij.plugins.relaxNG.compact.psi.impl.RncFileImpl; import org.jetbrains.annotations.NotNull; public class RncParserDefinition implements ParserDefinition { - public static final IFileElementType FILE_ELEMENT_TYPE = new IFileElementType(RngCompactLanguage.INSTANCE); - private static final TokenSet myCommentTypes = TokenSet.orSet(RncTokenTypes.COMMENTS, RncTokenTypes.DOC_TOKENS); + private static final IFileElementType FILE_ELEMENT_TYPE = new IFileElementType(RngCompactLanguage.INSTANCE); @Override @NotNull @@ -65,7 +64,7 @@ public class RncParserDefinition implements ParserDefinition { @Override @NotNull public TokenSet getCommentTokens() { - return myCommentTypes; + return TokenSet.orSet(RncTokenTypes.COMMENTS, RncTokenTypes.DOC_TOKENS); } @Override