mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
java: don't hardcode lexer creation
GitOrigin-RevId: 540e8313f6936a3190f9b59016783e6cc64252a1
This commit is contained in:
committed by
intellij-monorepo-bot
parent
4682103c9d
commit
0b4a7cb1f0
+5
-7
@@ -3,7 +3,6 @@ package com.intellij.lang.java.parser;
|
||||
|
||||
import com.intellij.core.JavaPsiBundle;
|
||||
import com.intellij.java.syntax.element.lazyParser.ParsingUtil;
|
||||
import com.intellij.java.syntax.lexer.JavaDocLexer;
|
||||
import com.intellij.java.syntax.lexer.JavaLexer;
|
||||
import com.intellij.lang.*;
|
||||
import com.intellij.lang.impl.PsiBuilderAdapter;
|
||||
@@ -22,7 +21,6 @@ import com.intellij.pom.java.LanguageLevel;
|
||||
import com.intellij.psi.JavaTokenType;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.impl.source.BasicJavaAstTreeUtil;
|
||||
import com.intellij.psi.impl.source.WhiteSpaceAndCommentSetHolder;
|
||||
import com.intellij.psi.impl.source.tree.TreeUtil;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
@@ -38,7 +36,6 @@ import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import static com.intellij.platform.syntax.lexer.TokenListUtil.tokenListLexer;
|
||||
import static com.intellij.psi.impl.source.BasicJavaDocElementType.BASIC_DOC_COMMENT;
|
||||
|
||||
@ApiStatus.Experimental
|
||||
public final class BasicJavaParserUtil {
|
||||
@@ -286,10 +283,11 @@ public final class BasicJavaParserUtil {
|
||||
}
|
||||
|
||||
public static @Nullable ASTNode parseFragmentWithHighestLanguageLevel(
|
||||
ASTNode chameleon,
|
||||
BasicJavaParserUtil.ParserWrapper wrapper
|
||||
@NotNull ASTNode chameleon,
|
||||
@NotNull BasicJavaParserUtil.ParserWrapper wrapper,
|
||||
@NotNull Function<LanguageLevel, Lexer> lexer
|
||||
) {
|
||||
return parseFragment(chameleon, wrapper, true, LanguageLevel.HIGHEST, JavaLexer::new);
|
||||
return parseFragment(chameleon, wrapper, true, LanguageLevel.HIGHEST, lexer);
|
||||
}
|
||||
|
||||
public static @Nullable ASTNode parseFragment(
|
||||
@@ -311,7 +309,7 @@ public final class BasicJavaParserUtil {
|
||||
assert psi != null : chameleon;
|
||||
|
||||
PsiSyntaxBuilderFactory factory = PsiSyntaxBuilderFactory.getInstance();
|
||||
Lexer lexer = BasicJavaAstTreeUtil.is(chameleon, BASIC_DOC_COMMENT) ? new JavaDocLexer(level) : javaLexer.apply(level);
|
||||
Lexer lexer = javaLexer.apply(level);
|
||||
PsiSyntaxBuilder psiBuilder = factory.createBuilder(chameleon, lexer, chameleon.getElementType().getLanguage(), chameleon.getChars());
|
||||
|
||||
long startTime = System.nanoTime();
|
||||
|
||||
+2
-1
@@ -2,6 +2,7 @@
|
||||
package com.intellij.psi.impl.source;
|
||||
|
||||
import com.intellij.java.syntax.element.JavaDocSyntaxElementType;
|
||||
import com.intellij.java.syntax.lexer.JavaDocLexer;
|
||||
import com.intellij.java.syntax.lexer.JavaLexer;
|
||||
import com.intellij.java.syntax.lexer.JavaTypeEscapeLexer;
|
||||
import com.intellij.java.syntax.parser.JavaDocParser;
|
||||
@@ -147,7 +148,7 @@ public interface BasicJavaDocElementType {
|
||||
|
||||
@Override
|
||||
public @Nullable ASTNode parseContents(final @NotNull ASTNode chameleon) {
|
||||
return BasicJavaParserUtil.parseFragmentWithHighestLanguageLevel(chameleon, myParser);
|
||||
return BasicJavaParserUtil.parseFragmentWithHighestLanguageLevel(chameleon, myParser, JavaDocLexer::new);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+2
-2
@@ -368,7 +368,7 @@ public interface BasicJavaElementType {
|
||||
|
||||
@Override
|
||||
public @Nullable ASTNode parseContents(final @NotNull ASTNode chameleon) {
|
||||
return BasicJavaParserUtil.parseFragmentWithHighestLanguageLevel(chameleon, myParser);
|
||||
return BasicJavaParserUtil.parseFragmentWithHighestLanguageLevel(chameleon, myParser, JavaLexer::new);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -423,7 +423,7 @@ public interface BasicJavaElementType {
|
||||
|
||||
@Override
|
||||
public @Nullable ASTNode parseContents(final @NotNull ASTNode chameleon) {
|
||||
return BasicJavaParserUtil.parseFragmentWithHighestLanguageLevel(chameleon, myParser);
|
||||
return BasicJavaParserUtil.parseFragmentWithHighestLanguageLevel(chameleon, myParser, JavaLexer::new);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user