mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-359853 replace Pair with PsiSyntaxBuilderWithLanguageLevel
GitOrigin-RevId: ae58a7bf0e01918f820da4c72b121b184a1f8b9e
This commit is contained in:
committed by
intellij-monorepo-bot
parent
755a1e416f
commit
f2d7799ac9
+7
-7
@@ -326,9 +326,9 @@ public final class BasicJavaParserUtil {
|
||||
}
|
||||
|
||||
|
||||
public static @NotNull Pair<PsiSyntaxBuilder, LanguageLevel> createSyntaxBuilder(@NotNull ASTNode chameleon,
|
||||
@NotNull Function<PsiElement, LanguageLevel> languageLevelFunction,
|
||||
@NotNull Function<PsiFile, TokenList> psiAsLexer) {
|
||||
public static @NotNull PsiSyntaxBuilderWithLanguageLevel createSyntaxBuilder(@NotNull ASTNode chameleon,
|
||||
@NotNull Function<PsiElement, LanguageLevel> languageLevelFunction,
|
||||
@NotNull Function<PsiFile, TokenList> psiAsLexer) {
|
||||
PsiElement psi = chameleon.getPsi();
|
||||
assert psi != null : chameleon;
|
||||
|
||||
@@ -351,11 +351,11 @@ public final class BasicJavaParserUtil {
|
||||
PsiSyntaxBuilderFactory factory = PsiSyntaxBuilderFactory.getInstance();
|
||||
PsiSyntaxBuilder builder = factory.createBuilder(chameleon, lexer, language, text);
|
||||
|
||||
return Pair.create(builder, level);
|
||||
return new PsiSyntaxBuilderWithLanguageLevel(builder, level);
|
||||
}
|
||||
|
||||
public static @NotNull Pair<PsiSyntaxBuilder, LanguageLevel> createSyntaxBuilder(@NotNull LighterLazyParseableNode chameleon,
|
||||
@NotNull Function<PsiElement, LanguageLevel> languageLevelFunction) {
|
||||
public static @NotNull PsiSyntaxBuilderWithLanguageLevel createSyntaxBuilder(@NotNull LighterLazyParseableNode chameleon,
|
||||
@NotNull Function<PsiElement, LanguageLevel> languageLevelFunction) {
|
||||
PsiElement psi = chameleon.getContainingFile();
|
||||
assert psi != null : chameleon;
|
||||
|
||||
@@ -364,7 +364,7 @@ public final class BasicJavaParserUtil {
|
||||
Lexer lexer = new JavaLexer(level);
|
||||
PsiSyntaxBuilder builder = factory.createBuilder(chameleon, lexer, chameleon.getTokenType().getLanguage(), chameleon.getText());
|
||||
|
||||
return Pair.create(builder, level);
|
||||
return new PsiSyntaxBuilderWithLanguageLevel(builder, level);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+8
-7
@@ -8,9 +8,9 @@ import com.intellij.java.syntax.parser.ReferenceParser;
|
||||
import com.intellij.lang.*;
|
||||
import com.intellij.lang.java.JavaLanguage;
|
||||
import com.intellij.lang.java.parser.BasicJavaParserUtil;
|
||||
import com.intellij.lang.java.parser.PsiSyntaxBuilderWithLanguageLevel;
|
||||
import com.intellij.openapi.progress.ProgressManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.platform.syntax.lexer.Lexer;
|
||||
import com.intellij.platform.syntax.lexer.TokenList;
|
||||
import com.intellij.platform.syntax.parser.SyntaxTreeBuilder;
|
||||
@@ -298,9 +298,10 @@ public interface BasicJavaElementType {
|
||||
|
||||
@Override
|
||||
public ASTNode parseContents(final @NotNull ASTNode chameleon) {
|
||||
Pair<PsiSyntaxBuilder, LanguageLevel> builderAndLevel = BasicJavaParserUtil.createSyntaxBuilder(chameleon, languageLevelFunction, psiAsLexer);
|
||||
PsiSyntaxBuilder psiSyntaxBuilder = builderAndLevel.getFirst();
|
||||
LanguageLevel level = builderAndLevel.getSecond();
|
||||
PsiSyntaxBuilderWithLanguageLevel
|
||||
builderAndLevel = BasicJavaParserUtil.createSyntaxBuilder(chameleon, languageLevelFunction, psiAsLexer);
|
||||
PsiSyntaxBuilder psiSyntaxBuilder = builderAndLevel.getBuilder();
|
||||
LanguageLevel level = builderAndLevel.getLanguageLevel();
|
||||
long startTime = System.nanoTime();
|
||||
SyntaxTreeBuilder builder = psiSyntaxBuilder.getSyntaxTreeBuilder();
|
||||
new JavaParser(level).getStatementParser().parseCodeBlockDeep(builder, true);
|
||||
@@ -311,9 +312,9 @@ public interface BasicJavaElementType {
|
||||
|
||||
@Override
|
||||
public @NotNull FlyweightCapableTreeStructure<LighterASTNode> parseContents(final @NotNull LighterLazyParseableNode chameleon) {
|
||||
Pair<PsiSyntaxBuilder, LanguageLevel> builderAndLevel = BasicJavaParserUtil.createSyntaxBuilder(chameleon, languageLevelFunction);
|
||||
PsiSyntaxBuilder psiSyntaxBuilder = builderAndLevel.getFirst();
|
||||
LanguageLevel level = builderAndLevel.getSecond();
|
||||
PsiSyntaxBuilderWithLanguageLevel builderAndLevel = BasicJavaParserUtil.createSyntaxBuilder(chameleon, languageLevelFunction);
|
||||
PsiSyntaxBuilder psiSyntaxBuilder = builderAndLevel.getBuilder();
|
||||
LanguageLevel level = builderAndLevel.getLanguageLevel();
|
||||
long startTime = System.nanoTime();
|
||||
SyntaxTreeBuilder builder = psiSyntaxBuilder.getSyntaxTreeBuilder();
|
||||
new JavaParser(level).getStatementParser().parseCodeBlockDeep(builder, true);
|
||||
|
||||
+4
-6
@@ -3,16 +3,14 @@ package com.intellij.psi.impl.java.stubs;
|
||||
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.lang.LighterASTNode;
|
||||
import com.intellij.lang.PsiBuilder;
|
||||
import com.intellij.lang.java.JavaLanguage;
|
||||
import com.intellij.lang.java.parser.JavaParserUtil;
|
||||
import com.intellij.lang.java.parser.PsiSyntaxBuilderWithLanguageLevel;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.platform.syntax.parser.SyntaxTreeBuilder;
|
||||
import com.intellij.platform.syntax.psi.ParsingDiagnostics;
|
||||
import com.intellij.platform.syntax.psi.PsiSyntaxBuilder;
|
||||
import com.intellij.pom.java.LanguageLevel;
|
||||
import com.intellij.psi.impl.source.JavaFileElementType;
|
||||
import com.intellij.psi.impl.source.JavaLightStubBuilder;
|
||||
import com.intellij.psi.stubs.LanguageStubDefinition;
|
||||
@@ -48,11 +46,11 @@ public class JavaStubDefinition implements LightLanguageStubDefinition, Language
|
||||
|
||||
@Override
|
||||
public @NotNull FlyweightCapableTreeStructure<LighterASTNode> parseContentsLight(@NotNull ASTNode chameleon) {
|
||||
Pair<PsiSyntaxBuilder, LanguageLevel> builderAndLevel = JavaParserUtil.createSyntaxBuilder(chameleon);
|
||||
PsiSyntaxBuilder psiSyntaxBuilder = builderAndLevel.getFirst();
|
||||
PsiSyntaxBuilderWithLanguageLevel builderAndLevel = JavaParserUtil.createSyntaxBuilder(chameleon);
|
||||
PsiSyntaxBuilder psiSyntaxBuilder = builderAndLevel.getBuilder();
|
||||
SyntaxTreeBuilder builder = psiSyntaxBuilder.getSyntaxTreeBuilder();
|
||||
long startTime = System.nanoTime();
|
||||
JavaFileElementType.doParse(builder, builderAndLevel.getSecond());
|
||||
JavaFileElementType.doParse(builder, builderAndLevel.getLanguageLevel());
|
||||
FlyweightCapableTreeStructure<LighterASTNode> tree = psiSyntaxBuilder.getLightTree();
|
||||
ParsingDiagnostics.registerParse(builder, JavaLanguage.INSTANCE, System.nanoTime() - startTime);
|
||||
return tree;
|
||||
|
||||
@@ -10,7 +10,6 @@ import com.intellij.lang.PsiBuilder;
|
||||
import com.intellij.lang.WhitespacesAndCommentsBinder;
|
||||
import com.intellij.lang.impl.TokenSequence;
|
||||
import com.intellij.lang.java.JavaParserDefinition;
|
||||
import com.intellij.lang.java.lexer.BasicJavaLexer;
|
||||
import com.intellij.openapi.progress.ProgressManager;
|
||||
import com.intellij.openapi.util.NlsContexts;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
@@ -18,7 +17,6 @@ import com.intellij.platform.syntax.SyntaxElementTypeSet;
|
||||
import com.intellij.platform.syntax.element.SyntaxTokenTypes;
|
||||
import com.intellij.platform.syntax.lexer.TokenList;
|
||||
import com.intellij.platform.syntax.lexer.TokenListKt;
|
||||
import com.intellij.platform.syntax.psi.PsiSyntaxBuilder;
|
||||
import com.intellij.pom.java.LanguageLevel;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.impl.source.WhiteSpaceAndCommentSetHolder;
|
||||
@@ -120,7 +118,7 @@ public final class JavaParserUtil {
|
||||
return BasicJavaParserUtil.isParseStatementCodeBlocksDeep(builder);
|
||||
}
|
||||
|
||||
public static @NotNull Pair<PsiSyntaxBuilder, LanguageLevel> createSyntaxBuilder(final ASTNode chameleon) {
|
||||
public static @NotNull PsiSyntaxBuilderWithLanguageLevel createSyntaxBuilder(final ASTNode chameleon) {
|
||||
return BasicJavaParserUtil.createSyntaxBuilder(chameleon,
|
||||
(psi) -> PsiUtil.getLanguageLevel(psi),
|
||||
(psi) -> obtainTokens(psi));
|
||||
|
||||
@@ -6,8 +6,8 @@ import com.intellij.java.syntax.parser.JavaParser;
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.lang.java.JavaLanguage;
|
||||
import com.intellij.lang.java.parser.JavaParserUtil;
|
||||
import com.intellij.lang.java.parser.PsiSyntaxBuilderWithLanguageLevel;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.platform.syntax.parser.SyntaxTreeBuilder;
|
||||
import com.intellij.platform.syntax.psi.ParsingDiagnostics;
|
||||
@@ -38,11 +38,11 @@ public class JavaFileElementType extends IFileElementType {
|
||||
|
||||
@Override
|
||||
public ASTNode parseContents(@NotNull ASTNode chameleon) {
|
||||
Pair<PsiSyntaxBuilder, LanguageLevel> builderAndLevel = JavaParserUtil.createSyntaxBuilder(chameleon);
|
||||
PsiSyntaxBuilder psiSyntaxBuilder = builderAndLevel.getFirst();
|
||||
PsiSyntaxBuilderWithLanguageLevel builderAndLevel = JavaParserUtil.createSyntaxBuilder(chameleon);
|
||||
PsiSyntaxBuilder psiSyntaxBuilder = builderAndLevel.getBuilder();
|
||||
SyntaxTreeBuilder builder = psiSyntaxBuilder.getSyntaxTreeBuilder();
|
||||
long startTime = System.nanoTime();
|
||||
doParse(builder, builderAndLevel.getSecond());
|
||||
doParse(builder, builderAndLevel.getLanguageLevel());
|
||||
ASTNode result = psiSyntaxBuilder.getTreeBuilt().getFirstChildNode();
|
||||
ParsingDiagnostics.registerParse(builder, getLanguage(), System.nanoTime() - startTime);
|
||||
return result;
|
||||
|
||||
@@ -100,7 +100,7 @@ public class JavaParsingTestConfigurator implements AbstractBasicJavaParsingTest
|
||||
}
|
||||
|
||||
private static PsiSyntaxBuilder createBuilder(ASTNode chameleon) {
|
||||
PsiSyntaxBuilder builder = JavaParserUtil.createSyntaxBuilder(chameleon).getFirst();
|
||||
PsiSyntaxBuilder builder = JavaParserUtil.createSyntaxBuilder(chameleon).getBuilder();
|
||||
builder.setDebugMode(true);
|
||||
return builder;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user