diff options
Diffstat (limited to 'plugins/devkit/src/dom/impl/PluginXmlDomFileDescription.java')
-rw-r--r-- | plugins/devkit/src/dom/impl/PluginXmlDomFileDescription.java | 99 |
1 files changed, 1 insertions, 98 deletions
diff --git a/plugins/devkit/src/dom/impl/PluginXmlDomFileDescription.java b/plugins/devkit/src/dom/impl/PluginXmlDomFileDescription.java index b3d7fda2c19a..091c172d0a60 100644 --- a/plugins/devkit/src/dom/impl/PluginXmlDomFileDescription.java +++ b/plugins/devkit/src/dom/impl/PluginXmlDomFileDescription.java @@ -15,109 +15,18 @@ */ package org.jetbrains.idea.devkit.dom.impl; -import com.intellij.codeInspection.ProblemHighlightType; import com.intellij.icons.AllIcons; -import com.intellij.lang.annotation.Annotation; -import com.intellij.lang.annotation.HighlightSeverity; import com.intellij.openapi.util.Iconable; -import com.intellij.psi.PsiClass; -import com.intellij.psi.PsiElement; -import com.intellij.psi.PsiField; -import com.intellij.util.xml.DomElement; import com.intellij.util.xml.DomFileDescription; -import com.intellij.util.xml.DomUtil; -import com.intellij.util.xml.GenericAttributeValue; -import com.intellij.util.xml.highlighting.DomElementAnnotationHolder; -import com.intellij.util.xml.highlighting.DomElementsAnnotator; -import com.intellij.util.xml.reflect.DomAttributeChildDescription; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.idea.devkit.dom.*; +import org.jetbrains.idea.devkit.dom.IdeaPlugin; import javax.swing.*; -import java.util.List; /** * @author mike */ public class PluginXmlDomFileDescription extends DomFileDescription<IdeaPlugin> { - private static final DomElementsAnnotator ANNOTATOR = new DomElementsAnnotator() { - @Override - public void annotate(DomElement element, DomElementAnnotationHolder holder) { - if (element instanceof Extension) { - annotateExtension((Extension)element, holder); - } - else if (element instanceof Vendor) { - annotateVendor((Vendor)element, holder); - } - else if (element instanceof IdeaVersion) { - annotateIdeaVersion((IdeaVersion)element, holder); - } - else if (element instanceof Extensions) { - annotateExtensions((Extensions)element, holder); - } - } - - private void annotateExtensions(Extensions extensions, DomElementAnnotationHolder holder) { - final GenericAttributeValue<IdeaPlugin> xmlnsAttribute = extensions.getXmlns(); - if (!DomUtil.hasXml(xmlnsAttribute)) return; - - final Annotation annotation = holder.createAnnotation(xmlnsAttribute, - HighlightSeverity.WARNING, - "Use defaultExtensionNs instead"); - annotation.setHighlightType(ProblemHighlightType.LIKE_DEPRECATED); - } - - private void annotateIdeaVersion(IdeaVersion ideaVersion, DomElementAnnotationHolder holder) { - highlightNotUsedAnymore(ideaVersion.getMin(), holder); - highlightNotUsedAnymore(ideaVersion.getMax(), holder); - } - - private void annotateExtension(Extension extension, DomElementAnnotationHolder holder) { - final ExtensionPoint extensionPoint = extension.getExtensionPoint(); - if (extensionPoint == null) return; - final GenericAttributeValue<PsiClass> interfaceAttribute = extensionPoint.getInterface(); - if (DomUtil.hasXml(interfaceAttribute)) { - final PsiClass value = interfaceAttribute.getValue(); - if (value != null && value.isDeprecated()) { - final Annotation annotation = holder.createAnnotation(extension, HighlightSeverity.WARNING, "Deprecated EP"); - annotation.setHighlightType(ProblemHighlightType.LIKE_DEPRECATED); - return; - } - } - - final List<? extends DomAttributeChildDescription> descriptions = extension.getGenericInfo().getAttributeChildrenDescriptions(); - for (DomAttributeChildDescription attributeDescription : descriptions) { - final GenericAttributeValue attributeValue = attributeDescription.getDomAttributeValue(extension); - if (attributeValue == null || !DomUtil.hasXml(attributeValue)) continue; - - final PsiElement declaration = attributeDescription.getDeclaration(extension.getManager().getProject()); - if (declaration instanceof PsiField) { - PsiField psiField = (PsiField)declaration; - if (psiField.isDeprecated()) { - final Annotation annotation = holder.createAnnotation(attributeValue, HighlightSeverity.WARNING, - "Deprecated attribute '" + attributeDescription.getName() + "'"); - annotation.setHighlightType(ProblemHighlightType.LIKE_DEPRECATED); - } - } - } - } - - private void annotateVendor(Vendor vendor, DomElementAnnotationHolder holder) { - highlightNotUsedAnymore(vendor.getLogo(), holder); - } - - private void highlightNotUsedAnymore(GenericAttributeValue attributeValue, - DomElementAnnotationHolder holder) { - if (!DomUtil.hasXml(attributeValue)) return; - - final Annotation annotation = holder.createAnnotation(attributeValue, - HighlightSeverity.WARNING, - "Not used anymore"); - annotation.setHighlightType(ProblemHighlightType.LIKE_DEPRECATED); - } - }; - public PluginXmlDomFileDescription() { super(IdeaPlugin.class, "idea-plugin"); } @@ -127,12 +36,6 @@ public class PluginXmlDomFileDescription extends DomFileDescription<IdeaPlugin> return AllIcons.Nodes.Plugin; } - @Nullable - @Override - public DomElementsAnnotator createAnnotator() { - return ANNOTATOR; - } - @Override public boolean hasStubs() { return true; |