summaryrefslogtreecommitdiff
path: root/plugins/devkit/src/dom/impl/PluginXmlDomFileDescription.java
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/devkit/src/dom/impl/PluginXmlDomFileDescription.java')
-rw-r--r--plugins/devkit/src/dom/impl/PluginXmlDomFileDescription.java99
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;