summaryrefslogtreecommitdiff
path: root/plugins/devkit/src
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/devkit/src')
-rw-r--r--plugins/devkit/src/DevKitBundle.java2
-rw-r--r--plugins/devkit/src/actions/ShowSerializedXmlAction.java12
-rw-r--r--plugins/devkit/src/build/PrepareToDeployAction.java1
-rw-r--r--plugins/devkit/src/dom/DependencyConfigFileConverter.java4
-rw-r--r--plugins/devkit/src/dom/impl/PluginXmlDomFileDescription.java33
5 files changed, 42 insertions, 10 deletions
diff --git a/plugins/devkit/src/DevKitBundle.java b/plugins/devkit/src/DevKitBundle.java
index 013fd2f43e6b..d5460ad123f9 100644
--- a/plugins/devkit/src/DevKitBundle.java
+++ b/plugins/devkit/src/DevKitBundle.java
@@ -26,7 +26,7 @@ public class DevKitBundle extends AbstractBundle {
return ourInstance.getMessage(key, params);
}
- @NonNls private static final String BUNDLE = "DevKitBundle";
+ @NonNls private static final String BUNDLE = "org.jetbrains.idea.devkit.DevKitBundle";
private static final DevKitBundle ourInstance = new DevKitBundle();
private DevKitBundle() {
diff --git a/plugins/devkit/src/actions/ShowSerializedXmlAction.java b/plugins/devkit/src/actions/ShowSerializedXmlAction.java
index 888042424295..e718eb74989d 100644
--- a/plugins/devkit/src/actions/ShowSerializedXmlAction.java
+++ b/plugins/devkit/src/actions/ShowSerializedXmlAction.java
@@ -41,6 +41,7 @@ import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.util.containers.FList;
import com.intellij.util.lang.UrlClassLoader;
import com.intellij.util.xmlb.Accessor;
+import com.intellij.util.xmlb.XmlSerializationException;
import com.intellij.util.xmlb.XmlSerializer;
import com.intellij.util.xmlb.XmlSerializerUtil;
import org.jdom.Element;
@@ -121,7 +122,16 @@ public class ShowSerializedXmlAction extends DumbAwareAction {
return;
}
- final Element element = XmlSerializer.serialize(o);
+ final Element element;
+ try {
+ element = XmlSerializer.serialize(o);
+ }
+ catch (XmlSerializationException e) {
+ LOG.info(e);
+ Throwable cause = e.getCause();
+ Messages.showErrorDialog(project, e.getMessage() + (cause != null ? ": " + cause.getMessage() : ""), CommonBundle.getErrorTitle());
+ return;
+ }
final String text = JDOMUtil.writeElement(element, "\n");
Messages.showIdeaMessageDialog(project, text, "Serialized XML for '" + className + "'",
new String[]{CommonBundle.getOkButtonText()}, 0, Messages.getInformationIcon(), null);
diff --git a/plugins/devkit/src/build/PrepareToDeployAction.java b/plugins/devkit/src/build/PrepareToDeployAction.java
index b501331596b5..37bedb4d1d3a 100644
--- a/plugins/devkit/src/build/PrepareToDeployAction.java
+++ b/plugins/devkit/src/build/PrepareToDeployAction.java
@@ -164,6 +164,7 @@ public class PrepareToDeployAction extends AnAction {
else {
FileUtil.copy(jarFile, dstFile);
}
+ LocalFileSystem.getInstance().refreshIoFiles(Collections.singleton(dstFile), true, false, null);
successMessages.add(DevKitBundle.message("saved.message", isZip ? 1 : 2, pluginName, dstPath));
}
catch (final IOException e) {
diff --git a/plugins/devkit/src/dom/DependencyConfigFileConverter.java b/plugins/devkit/src/dom/DependencyConfigFileConverter.java
index 214d21e6e819..b9cb283a1ac5 100644
--- a/plugins/devkit/src/dom/DependencyConfigFileConverter.java
+++ b/plugins/devkit/src/dom/DependencyConfigFileConverter.java
@@ -93,12 +93,12 @@ public class DependencyConfigFileConverter extends PathReferenceConverter {
public Collection<PsiFileSystemItem> computeDefaultContexts() {
final PsiFile containingFile = getContainingFile();
if (containingFile == null) {
- return super.getDefaultContexts();
+ return Collections.emptyList();
}
final Module module = ModuleUtilCore.findModuleForPsiElement(getElement());
if (module == null) {
- return super.getDefaultContexts();
+ return Collections.emptyList();
}
final Set<VirtualFile> roots = new HashSet<VirtualFile>();
diff --git a/plugins/devkit/src/dom/impl/PluginXmlDomFileDescription.java b/plugins/devkit/src/dom/impl/PluginXmlDomFileDescription.java
index 80a3aabce8f3..b3d7fda2c19a 100644
--- a/plugins/devkit/src/dom/impl/PluginXmlDomFileDescription.java
+++ b/plugins/devkit/src/dom/impl/PluginXmlDomFileDescription.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2013 JetBrains s.r.o.
+ * Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,16 +21,20 @@ 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 javax.swing.*;
+import java.util.List;
/**
* @author mike
@@ -73,12 +77,29 @@ public class PluginXmlDomFileDescription extends DomFileDescription<IdeaPlugin>
final ExtensionPoint extensionPoint = extension.getExtensionPoint();
if (extensionPoint == null) return;
final GenericAttributeValue<PsiClass> interfaceAttribute = extensionPoint.getInterface();
- if (!DomUtil.hasXml(interfaceAttribute)) return;
+ 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 PsiClass value = interfaceAttribute.getValue();
- if (value != null && value.isDeprecated()) {
- final Annotation annotation = holder.createAnnotation(extension, HighlightSeverity.WARNING, "Deprecated EP");
- annotation.setHighlightType(ProblemHighlightType.LIKE_DEPRECATED);
+ 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);
+ }
+ }
}
}