diff options
Diffstat (limited to 'plugins/devkit/src')
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); + } + } } } |