diff options
Diffstat (limited to 'plugins/devkit')
-rw-r--r-- | plugins/devkit/resources/META-INF/plugin.xml | 22 | ||||
-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.java | 2 | ||||
-rw-r--r-- | plugins/devkit/src/actions/ShowSerializedXmlAction.java | 12 | ||||
-rw-r--r-- | plugins/devkit/src/build/PrepareToDeployAction.java | 1 | ||||
-rw-r--r-- | plugins/devkit/src/dom/DependencyConfigFileConverter.java | 4 | ||||
-rw-r--r-- | plugins/devkit/src/dom/impl/PluginXmlDomFileDescription.java | 33 | ||||
-rw-r--r-- | plugins/devkit/testData/codeInsight/deprecatedExtensionAttribute.xml | 2 |
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="<inspection> 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="<extensionPoint> 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 |