From ba82023354771c19f306237e52ffbab756afc071 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 11 Jul 2013 15:47:57 +0200 Subject: [PATCH] query reference quickfixes from LocalQuickFixProvider, not just QuickFixProvider --- .../daemon/impl/analysis/XmlHighlightVisitor.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/xml/impl/src/com/intellij/codeInsight/daemon/impl/analysis/XmlHighlightVisitor.java b/xml/impl/src/com/intellij/codeInsight/daemon/impl/analysis/XmlHighlightVisitor.java index 0509068e1dcf..96e5694dedc7 100644 --- a/xml/impl/src/com/intellij/codeInsight/daemon/impl/analysis/XmlHighlightVisitor.java +++ b/xml/impl/src/com/intellij/codeInsight/daemon/impl/analysis/XmlHighlightVisitor.java @@ -25,7 +25,7 @@ import com.intellij.codeInsight.daemon.impl.quickfix.QuickFixAction; import com.intellij.codeInsight.daemon.impl.quickfix.QuickFixActionRegistrarImpl; import com.intellij.codeInsight.intention.IntentionAction; import com.intellij.codeInsight.quickfix.UnresolvedReferenceQuickFixProvider; -import com.intellij.codeInspection.InspectionProfile; +import com.intellij.codeInspection.*; import com.intellij.codeInspection.htmlInspections.RequiredAttributesInspection; import com.intellij.codeInspection.htmlInspections.XmlEntitiesInspection; import com.intellij.lang.ASTNode; @@ -620,6 +620,17 @@ public class XmlHighlightVisitor extends XmlElementVisitor implements HighlightV .descriptionAndTooltip(description).create(); addToResults(info); if (reference instanceof QuickFixProvider) ((QuickFixProvider)reference).registerQuickfix(info, reference); + if (reference instanceof LocalQuickFixProvider) { + LocalQuickFix[] fixes = ((LocalQuickFixProvider)reference).getQuickFixes(); + if (fixes != null) { + InspectionManager manager = InspectionManager.getInstance(reference.getElement().getProject()); + for (LocalQuickFix fix : fixes) { + ProblemDescriptor descriptor = manager.createProblemDescriptor(value, description, fix, + ProblemHighlightType.GENERIC_ERROR_OR_WARNING, true); + QuickFixAction.registerQuickFixAction(info, new LocalQuickFixAsIntentionAdapter(fix, descriptor)); + } + } + } UnresolvedReferenceQuickFixProvider.registerReferenceFixes(reference, new QuickFixActionRegistrarImpl(info)); } }