mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
faster initialization of some ParserDefinitions
This commit is contained in:
@@ -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<RegExpCapability> DEFAULT_CAPABILITIES = EnumSet.of(NESTED_CHARACTER_CLASSES,
|
||||
ALLOW_HORIZONTAL_WHITESPACE_CLASS,
|
||||
UNICODE_CATEGORY_SHORTHAND,
|
||||
EXTENDED_UNICODE_CHARACTER);
|
||||
}
|
||||
|
||||
@@ -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<RegExpCapability> CAPABILITIES = EnumSet.of(RegExpCapability.NESTED_CHARACTER_CLASSES,
|
||||
RegExpCapability.ALLOW_HORIZONTAL_WHITESPACE_CLASS,
|
||||
RegExpCapability.UNICODE_CATEGORY_SHORTHAND,
|
||||
RegExpCapability.EXTENDED_UNICODE_CHARACTER);
|
||||
|
||||
@NotNull
|
||||
public EnumSet<RegExpCapability> 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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user