[java] More tests for preview; minor fixes

GitOrigin-RevId: 7f72c5f68ab821e728eb0d5152f0910f48035046
This commit is contained in:
Tagir Valeev
2022-07-20 15:22:33 +02:00
committed by intellij-monorepo-bot
parent 7a1f179f41
commit 9c6aeba5b4
726 changed files with 874 additions and 767 deletions

View File

@@ -4,12 +4,15 @@ package com.intellij.codeInspection;
import com.intellij.codeInsight.AnnotationUtil;
import com.intellij.codeInsight.ExternalAnnotationsManager;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.intention.preview.IntentionPreviewInfo;
import com.intellij.codeInspection.nullable.AnnotateOverriddenMethodParameterFix;
import com.intellij.java.analysis.JavaAnalysisBundle;
import com.intellij.openapi.application.WriteAction;
import com.intellij.openapi.project.Project;
import com.intellij.psi.*;
import com.intellij.psi.codeStyle.JavaCodeStyleManager;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.util.ObjectUtils;
import com.intellij.util.containers.ContainerUtil;
import one.util.streamex.StreamEx;
import org.jetbrains.annotations.NotNull;
@@ -47,6 +50,18 @@ public class RemoveAnnotationQuickFix implements LocalQuickFix {
return false;
}
@Override
public @NotNull IntentionPreviewInfo generatePreview(@NotNull Project project, @NotNull ProblemDescriptor previewDescriptor) {
PsiJavaFile file = ObjectUtils.tryCast(previewDescriptor.getStartElement().getContainingFile(), PsiJavaFile.class);
if (file == null) return IntentionPreviewInfo.DIFF;
PsiAnnotation annotation = myAnnotation.getElement();
if (annotation == null || annotation.getContainingFile() != file.getOriginalFile()) return IntentionPreviewInfo.EMPTY;
PsiAnnotation copy = PsiTreeUtil.findSameElementInCopy(annotation, file);
copy.delete();
JavaCodeStyleManager.getInstance(project).removeRedundantImports(file);
return IntentionPreviewInfo.DIFF;
}
@Override
public void applyFix(@NotNull Project project, @NotNull ProblemDescriptor descriptor) {
PsiAnnotation annotation = myAnnotation.getElement();