encapsulate AnnotationSessionImpl creation to make it possible to add more info there

GitOrigin-RevId: 02b20264bcc3d4a96ca560440730235ea98c772d
This commit is contained in:
Alexey Kudravtsev
2023-07-20 12:11:34 +00:00
committed by intellij-monorepo-bot
parent 83f3ca21bc
commit 5d19cf1058
10 changed files with 21 additions and 20 deletions
@@ -11,7 +11,7 @@ import com.intellij.codeInspection.ex.Tools;
import com.intellij.compiler.options.ValidationConfiguration;
import com.intellij.lang.ExternalLanguageAnnotators;
import com.intellij.lang.annotation.Annotation;
import com.intellij.lang.annotation.AnnotationSessionImpl;
import com.intellij.codeInsight.daemon.impl.analysis.AnnotationSessionImpl;
import com.intellij.lang.annotation.ExternalAnnotator;
import com.intellij.lang.annotation.HighlightSeverity;
import com.intellij.lang.xml.XMLLanguage;
@@ -329,7 +329,7 @@ public class InspectionValidatorWrapper implements Validator {
private Map<ProblemDescriptor, HighlightDisplayLevel> runXmlFileSchemaValidation(@NotNull XmlFile xmlFile) {
Map<ProblemDescriptor, HighlightDisplayLevel> problemsMap = new LinkedHashMap<>();
return AnnotationSessionImpl.withSession(xmlFile, false, holder -> {
return AnnotationSessionImpl.computeWithSession(xmlFile, false, holder -> {
List<ExternalAnnotator<?,?>> annotators = ExternalLanguageAnnotators.allForFile(XMLLanguage.INSTANCE, xmlFile);
for (ExternalAnnotator<?, ?> annotator : annotators) {
processAnnotator(xmlFile, holder, annotator);
@@ -10,7 +10,7 @@ import com.intellij.codeInsight.daemon.impl.analysis.HighlightInfoHolder;
import com.intellij.codeInsight.daemon.impl.analysis.HighlightingLevelManager;
import com.intellij.codeInsight.highlighting.PassRunningAssert;
import com.intellij.codeInsight.problems.ProblemImpl;
import com.intellij.lang.annotation.AnnotationSessionImpl;
import com.intellij.codeInsight.daemon.impl.analysis.AnnotationSessionImpl;
import com.intellij.lang.annotation.HighlightSeverity;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
@@ -1,7 +1,8 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.lang.annotation;
package com.intellij.codeInsight.daemon.impl.analysis;
import com.intellij.codeInsight.daemon.impl.AnnotationHolderImpl;
import com.intellij.lang.annotation.AnnotationSession;
import com.intellij.openapi.util.Key;
import com.intellij.openapi.util.TextRange;
import com.intellij.openapi.util.UserDataHolder;
@@ -20,7 +21,7 @@ public class AnnotationSessionImpl extends AnnotationSession {
private final UserDataHolder myDataHolder = new UserDataHolderBase();
@ApiStatus.Internal
public AnnotationSessionImpl(@NotNull PsiFile file) {
AnnotationSessionImpl(@NotNull PsiFile file) {
super(file);
}
@@ -47,7 +48,7 @@ public class AnnotationSessionImpl extends AnnotationSession {
myDataHolder.putUserData(key, value);
}
public static <T> T withSession(@NotNull PsiFile psiFile, boolean batchMode, @NotNull Function<? super AnnotationHolderImpl, T> runnable) {
public static <T> T computeWithSession(@NotNull PsiFile psiFile, boolean batchMode, @NotNull Function<? super AnnotationHolderImpl, T> runnable) {
AnnotationHolderImpl holder = new AnnotationHolderImpl(new AnnotationSessionImpl(psiFile), batchMode);
try {
return runnable.apply(holder);
@@ -4,7 +4,6 @@ package com.intellij.codeInsight.daemon.impl.analysis;
import com.intellij.codeInsight.daemon.impl.HighlightInfo;
import com.intellij.codeInsight.daemon.impl.HighlightInfoFilter;
import com.intellij.lang.annotation.AnnotationSession;
import com.intellij.lang.annotation.AnnotationSessionImpl;
import com.intellij.lang.annotation.HighlightSeverity;
import com.intellij.openapi.editor.colors.TextAttributesScheme;
import com.intellij.openapi.project.Project;
@@ -4,7 +4,7 @@ package com.intellij.codeInspection;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.codeInsight.intention.preview.IntentionPreviewInfo;
import com.intellij.codeInsight.intention.preview.IntentionPreviewUtils;
import com.intellij.lang.annotation.AnnotationSessionImpl;
import com.intellij.codeInsight.daemon.impl.analysis.AnnotationSessionImpl;
import com.intellij.lang.annotation.ExternalAnnotator;
import com.intellij.openapi.application.ReadAction;
import com.intellij.openapi.diagnostic.Logger;
@@ -53,7 +53,7 @@ public class ExternalAnnotatorInspectionVisitor extends PsiElementVisitor {
if (annotationResult == null) {
return ProblemDescriptor.EMPTY_ARRAY;
}
return ReadAction.compute(() -> AnnotationSessionImpl.withSession(file, true, annotationHolder -> {
return ReadAction.compute(() -> AnnotationSessionImpl.computeWithSession(file, true, annotationHolder -> {
annotationHolder.applyExternalAnnotatorWithContext(file, annotator, annotationResult);
annotationHolder.assertAllAnnotationsCreated();
return ProblemDescriptorUtil.convertToProblemDescriptors(annotationHolder, file);
@@ -9,7 +9,7 @@ import com.intellij.codeInspection.ex.InspectionProfileWrapper;
import com.intellij.diagnostic.PluginException;
import com.intellij.lang.ExternalLanguageAnnotators;
import com.intellij.lang.LangBundle;
import com.intellij.lang.annotation.AnnotationSessionImpl;
import com.intellij.codeInsight.daemon.impl.analysis.AnnotationSessionImpl;
import com.intellij.lang.annotation.ExternalAnnotator;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.ReadAction;
@@ -141,7 +141,7 @@ public class ExternalToolPass extends ProgressableTextEditorHighlightingPass {
}
long modificationStampBefore = myDocument.getModificationStamp();
AnnotationSessionImpl.withSession(myFile, false, annotationHolder -> {
AnnotationSessionImpl.computeWithSession(myFile, false, annotationHolder -> {
Update update = new Update(myFile) {
@Override
public void setRejected() {
@@ -2,6 +2,7 @@
package com.intellij.testFramework.fixtures;
import com.intellij.codeInsight.daemon.impl.*;
import com.intellij.codeInsight.daemon.impl.analysis.AnnotationSessionImpl;
import com.intellij.codeInsight.editorActions.smartEnter.SmartEnterProcessor;
import com.intellij.codeInsight.editorActions.smartEnter.SmartEnterProcessors;
import com.intellij.codeInsight.generation.surroundWith.SurroundWithHandler;
@@ -321,7 +322,7 @@ public final class CodeInsightTestUtil {
@NotNull Consumer<? super Out> resultChecker) {
Out result = annotator.doAnnotate(in);
resultChecker.accept(result);
return AnnotationSessionImpl.withSession(psiFile, false, annotationHolder -> {
return AnnotationSessionImpl.computeWithSession(psiFile, false, annotationHolder -> {
ApplicationManager.getApplication().runReadAction(() -> annotationHolder.applyExternalAnnotatorWithContext(psiFile, annotator, result));
annotationHolder.assertAllAnnotationsCreated();
return List.copyOf(annotationHolder);
@@ -334,7 +335,7 @@ public final class CodeInsightTestUtil {
@NotNull
public static List<Annotation> testAnnotator(@NotNull Annotator annotator, @NotNull PsiElement @NotNull... elements) {
PsiFile psiFile = elements[0].getContainingFile();
return AnnotationSessionImpl.withSession(psiFile, false, annotationHolder -> {
return AnnotationSessionImpl.computeWithSession(psiFile, false, annotationHolder -> {
for (PsiElement element : elements) {
annotationHolder.runAnnotatorWithContext(element, annotator);
}
@@ -18,7 +18,7 @@ package org.intellij.plugins.xpathView.util;
import com.intellij.lang.ASTNode;
import com.intellij.lang.LanguageAnnotators;
import com.intellij.lang.annotation.Annotation;
import com.intellij.lang.annotation.AnnotationSessionImpl;
import com.intellij.codeInsight.daemon.impl.analysis.AnnotationSessionImpl;
import com.intellij.lang.annotation.Annotator;
import com.intellij.lang.annotation.HighlightSeverity;
import com.intellij.openapi.diagnostic.Logger;
@@ -155,7 +155,7 @@ public final class MyPsiUtil {
file.accept(new PsiRecursiveElementVisitor() {
@Override
public void visitElement(@NotNull PsiElement element) {
AnnotationSessionImpl.withSession(file, false, holder -> {
AnnotationSessionImpl.computeWithSession(file, false, holder -> {
holder.runAnnotatorWithContext(element, annotator);
for (Annotation annotation : holder) {
if (annotation.getSeverity() == HighlightSeverity.ERROR) {
@@ -7,7 +7,7 @@ import com.intellij.codeInspection.InspectionProfile;
import com.intellij.codeInspection.InspectionProfileEntry;
import com.intellij.codeInspection.ProblemDescriptor;
import com.intellij.codeInspection.ex.InspectionToolWrapper;
import com.intellij.lang.annotation.AnnotationSessionImpl;
import com.intellij.codeInsight.daemon.impl.analysis.AnnotationSessionImpl;
import com.intellij.lang.annotation.HighlightSeverity;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.project.Project;
@@ -202,7 +202,7 @@ public class DomElementAnnotationsManagerImpl extends DomElementAnnotationsManag
return problemHolder.getAllProblems(inspection);
}
return AnnotationSessionImpl.withSession(domFileElement.getFile(), false, annotationHolder -> {
return AnnotationSessionImpl.computeWithSession(domFileElement.getFile(), false, annotationHolder -> {
DomElementAnnotationHolder holder = new DomElementAnnotationHolderImpl(onTheFly, domFileElement, annotationHolder);
inspection.checkFileElement(domFileElement, holder);
//noinspection unchecked
@@ -6,7 +6,7 @@ import com.intellij.codeInspection.InspectionManager;
import com.intellij.codeInspection.InspectionProfile;
import com.intellij.codeInspection.ProblemDescriptor;
import com.intellij.codeInspection.ex.LocalInspectionToolWrapper;
import com.intellij.lang.annotation.AnnotationSessionImpl;
import com.intellij.codeInsight.daemon.impl.analysis.AnnotationSessionImpl;
import com.intellij.mock.MockInspectionProfile;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiFile;
@@ -118,7 +118,7 @@ public class DomHighlightingLiteTest extends DomTestCase {
}
private DomElementAnnotationHolderImpl createHolder() {
return AnnotationSessionImpl.withSession(myElement.getFile(), false, holder -> new DomElementAnnotationHolderImpl(true, myElement, holder));
return AnnotationSessionImpl.computeWithSession(myElement.getFile(), false, holder -> new DomElementAnnotationHolderImpl(true, myElement, holder));
}
private static DomElementsProblemsHolderImpl assertNotEmptyHolder(final DomElementsProblemsHolder holder1) {
@@ -168,7 +168,7 @@ public class DomHighlightingLiteTest extends DomTestCase {
}
};
final StringBuilder s = new StringBuilder();
AnnotationSessionImpl.withSession(myElement.getFile(), false, toFill -> {
AnnotationSessionImpl.computeWithSession(myElement.getFile(), false, toFill -> {
final MyDomElementsInspection inspection = new MyDomElementsInspection() {
@Override