WEB-66994 Move XmlImportOptimizer result collecting out of EDT

GitOrigin-RevId: f6a6a1fabddaedf1c69aad75cefe42d64603c19c
This commit is contained in:
Piotr Tomiak
2024-05-10 14:10:11 +02:00
committed by intellij-monorepo-bot
parent 30cc7bbd99
commit 4956896d36

View File

@@ -43,15 +43,11 @@ public class XmlImportOptimizer implements ImportOptimizer {
@Override
public @NotNull CollectingInfoRunnable processFile(final @NotNull PsiFile file) {
return new CollectingInfoRunnable() {
int myRemovedNameSpaces = 0;
@Override
public void run() {
XmlFile xmlFile = (XmlFile)file;
Project project = xmlFile.getProject();
HighlightDisplayKey key = HighlightDisplayKey.find(myInspection.getShortName());
if (!InspectionProjectProfileManager.getInstance(project).getCurrentProfile().isToolEnabled(key, xmlFile)) return;
Map<XmlUnusedNamespaceInspection.RemoveNamespaceDeclarationFix, ProblemDescriptor> fixes = new LinkedHashMap<>();
if (InspectionProjectProfileManager.getInstance(project).getCurrentProfile().isToolEnabled(key, xmlFile)) {
ProblemsHolder holder = new ProblemsHolder(InspectionManager.getInstance(project), xmlFile, false);
final XmlElementVisitor visitor = (XmlElementVisitor)myInspection.buildVisitor(holder, false);
new PsiRecursiveElementVisitor() {
@@ -68,7 +64,6 @@ public class XmlImportOptimizer implements ImportOptimizer {
ProblemDescriptor[] results = holder.getResultsArray();
List<ProblemDescriptor> list = ContainerUtil.filter(results, myCondition);
Map<XmlUnusedNamespaceInspection.RemoveNamespaceDeclarationFix, ProblemDescriptor> fixes = new LinkedHashMap<>();
for (ProblemDescriptor result : list) {
for (QuickFix fix : result.getFixes()) {
if (fix instanceof XmlUnusedNamespaceInspection.RemoveNamespaceDeclarationFix) {
@@ -76,7 +71,12 @@ public class XmlImportOptimizer implements ImportOptimizer {
}
}
}
}
return new CollectingInfoRunnable() {
int myRemovedNameSpaces = 0;
@Override
public void run() {
SmartPsiElementPointer<XmlTag> pointer = null;
for (Map.Entry<XmlUnusedNamespaceInspection.RemoveNamespaceDeclarationFix, ProblemDescriptor> fix : fixes.entrySet()) {
pointer = fix.getKey().doFix(project, fix.getValue(), false);