summaryrefslogtreecommitdiff
path: root/plugins/devkit
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/devkit')
-rw-r--r--plugins/devkit/resources/META-INF/plugin.xml22
-rw-r--r--plugins/devkit/resources/org/jetbrains/idea/devkit/DevKitBundle.properties (renamed from plugins/devkit/resources/DevKitBundle.properties)0
-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
-rw-r--r--plugins/devkit/testData/codeInsight/deprecatedExtensionAttribute.xml2
8 files changed, 46 insertions, 30 deletions
diff --git a/plugins/devkit/resources/META-INF/plugin.xml b/plugins/devkit/resources/META-INF/plugin.xml
index 9bb838c8e02c..0a9501ebef94 100644
--- a/plugins/devkit/resources/META-INF/plugin.xml
+++ b/plugins/devkit/resources/META-INF/plugin.xml
@@ -12,7 +12,7 @@
<depends>com.intellij.properties</depends>
- <resource-bundle>DevKitBundle</resource-bundle>
+ <resource-bundle>org.jetbrains.idea.devkit.DevKitBundle</resource-bundle>
<extensions defaultExtensionNs="com.intellij">
<errorHandler implementation="com.intellij.diagnostic.ITNReporter"/>
@@ -56,52 +56,44 @@
implementationClass="org.jetbrains.idea.devkit.references.extensions.ExtensionPointDocumentationProvider"/>
<localInspection language="XML" shortName="PluginXmlValidity" displayName="Plugin.xml Validity"
- bundle="DevKitBundle"
groupKey="inspections.group.name" enabledByDefault="true" level="ERROR"
implementationClass="org.jetbrains.idea.devkit.inspections.PluginXmlDomInspection"/>
- <localInspection language="JAVA" shortName="ComponentNotRegistered" bundle="DevKitBundle"
+ <localInspection language="JAVA" shortName="ComponentNotRegistered"
key="inspections.component.not.registered.name" groupKey="inspections.group.name" enabledByDefault="true"
level="WARNING" implementationClass="org.jetbrains.idea.devkit.inspections.ComponentNotRegisteredInspection"/>
<localInspection language="JAVA" shortName="InspectionDescriptionNotFoundInspection" displayName="Inspection Description Checker"
- bundle="DevKitBundle"
groupKey="inspections.group.name" enabledByDefault="true" level="WARNING"
implementationClass="org.jetbrains.idea.devkit.inspections.InspectionDescriptionNotFoundInspection"/>
<localInspection language="JAVA" shortName="InspectionUsingGrayColors" displayName="Using new Color(a,a,a)"
- bundle="DevKitBundle"
groupKey="inspections.group.name" enabledByDefault="true" level="WARNING"
implementationClass="org.jetbrains.idea.devkit.inspections.UseGrayInspection"/>
<localInspection language="JAVA" shortName="IntentionDescriptionNotFoundInspection" displayName="Intention Description Checker"
- bundle="DevKitBundle"
groupKey="inspections.group.name" enabledByDefault="true" level="WARNING"
implementationClass="org.jetbrains.idea.devkit.inspections.IntentionDescriptionNotFoundInspection"/>
<localInspection language="JAVA"
key="inspections.component.postfix.template.not.found.description.name"
- bundle="DevKitBundle"
groupKey="inspections.group.name"
enabledByDefault="true"
level="WARNING"
implementationClass="org.jetbrains.idea.devkit.inspections.PostfixTemplateDescriptionNotFoundInspection"/>
<localInspection shortName="ComponentRegistrationProblems"
- bundle="DevKitBundle" key="inspections.registration.problems.name"
+ key="inspections.registration.problems.name"
groupKey="inspections.group.name"
enabledByDefault="true" level="ERROR"
implementationClass="org.jetbrains.idea.devkit.inspections.RegistrationProblemsInspection"/>
<localInspection language="JAVA" shortName="DialogTitleCapitalization"
- bundle="DevKitBundle"
groupKey="inspections.group.name"
displayName="Incorrect dialog title capitalization"
enabledByDefault="true"
level="WARNING"
implementationClass="org.jetbrains.idea.devkit.inspections.TitleCapitalizationInspection"/>
<localInspection language="XML" shortName="InspectionMappingConsistency"
- bundle="DevKitBundle"
groupKey="inspections.group.name"
displayName="&lt;inspection&gt; tag consistency"
enabledByDefault="true"
level="WARNING"
implementationClass="org.jetbrains.idea.devkit.inspections.InspectionMappingConsistencyInspection"/>
<localInspection language="XML" shortName="ExtensionPointBeanClass"
- bundle="DevKitBundle"
groupKey="inspections.group.name"
displayName="&lt;extensionPoint&gt; beanClass specification"
enabledByDefault="true"
@@ -109,42 +101,34 @@
implementationClass="org.jetbrains.idea.devkit.inspections.ExtensionPointBeanClassInspection"/>
<localInspection language="JAVA" shortName="UndesirableClassUsage" displayName="Undesirable class usage"
- bundle="DevKitBundle"
groupKey="inspections.group.name"
enabledByDefault="true" level="WARNING"
implementationClass="org.jetbrains.idea.devkit.inspections.internal.UndesirableClassUsageInspection"/>
<localInspection language="JAVA" shortName="FileEqualsUsage" displayName="File.equals() usage"
- bundle="DevKitBundle"
groupKey="inspections.group.name"
enabledByDefault="true" level="WARNING"
implementationClass="org.jetbrains.idea.devkit.inspections.internal.FileEqualsUsageInspection"/>
<localInspection language="JAVA" shortName="GtkPreferredJComboBoxRenderer" displayName="Preferred JComboBox renderer"
- bundle="DevKitBundle"
groupKey="inspections.group.name"
enabledByDefault="true" level="WARNING"
implementationClass="org.jetbrains.idea.devkit.inspections.internal.GtkPreferredJComboBoxRendererInspection"/>
<localInspection language="JAVA" shortName="UnsafeVfsRecursion" displayName="Unsafe VFS recursion"
- bundle="DevKitBundle"
groupKey="inspections.group.name"
enabledByDefault="true" level="WARNING"
implementationClass="org.jetbrains.idea.devkit.inspections.internal.UnsafeVfsRecursionInspection"/>
<localInspection language="JAVA" shortName="UseJBColor" displayName="Use Darcula aware JBColor"
- bundle="DevKitBundle"
groupKey="inspections.group.name"
enabledByDefault="true" level="WARNING"
implementationClass="org.jetbrains.idea.devkit.inspections.internal.UseJBColorInspection"/>
<localInspection language="JAVA" shortName="UseCouple" displayName="Use Couple instead of Pair"
- bundle="DevKitBundle"
groupKey="inspections.group.name"
enabledByDefault="false" level="WARNING"
implementationClass="org.jetbrains.idea.devkit.inspections.internal.UseCoupleInspection"/>
<localInspection language="JAVA" shortName="DontUsePairConstructor" displayName="Don't use constructor of Pair class"
- bundle="DevKitBundle"
groupKey="inspections.group.name"
enabledByDefault="true" level="WARNING"
implementationClass="org.jetbrains.idea.devkit.inspections.internal.DontUseNewPairInspection"/>
<localInspection language="JAVA" shortName="UseVirtualFileEquals" displayName="Use VirtualFile.equals"
- bundle="DevKitBundle"
groupKey="inspections.group.name"
enabledByDefault="true" level="WARNING"
implementationClass="org.jetbrains.idea.devkit.inspections.internal.UseVirtualFileEqualsInspection"/>
diff --git a/plugins/devkit/resources/DevKitBundle.properties b/plugins/devkit/resources/org/jetbrains/idea/devkit/DevKitBundle.properties
index 6799f6d2415f..6799f6d2415f 100644
--- a/plugins/devkit/resources/DevKitBundle.properties
+++ b/plugins/devkit/resources/org/jetbrains/idea/devkit/DevKitBundle.properties
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);
+ }
+ }
}
}
diff --git a/plugins/devkit/testData/codeInsight/deprecatedExtensionAttribute.xml b/plugins/devkit/testData/codeInsight/deprecatedExtensionAttribute.xml
index 6ea4867e4bdf..5466b7ee4485 100644
--- a/plugins/devkit/testData/codeInsight/deprecatedExtensionAttribute.xml
+++ b/plugins/devkit/testData/codeInsight/deprecatedExtensionAttribute.xml
@@ -6,7 +6,7 @@
</extensionPoints>
<extensions defaultExtensionNs="com.intellij.myPlugin">
- <myExt <warning descr="'myOld' is deprecated">old</warning>="java.lang.Runnable" attr="value"/>
+ <myExt <warning descr="Deprecated attribute 'old'">old="java.lang.Runnable"</warning> attr="value"/>
</extensions>
</idea-plugin> \ No newline at end of file