From 1ebb9d48e6ce64ebbaaed9723f8b1ae6ecd9745e Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 5 Aug 2015 21:18:37 +0200 Subject: [PATCH] IDEA-143512 Android: "Define attribute" quick fix inserts required xml attributes without "android:" namespace --- .../xml/highlighting/DefineAttributeQuickFix.java | 11 ++++++++--- .../xml/highlighting/DomHighlightingHelperImpl.java | 8 ++++---- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/xml/dom-impl/src/com/intellij/util/xml/highlighting/DefineAttributeQuickFix.java b/xml/dom-impl/src/com/intellij/util/xml/highlighting/DefineAttributeQuickFix.java index 96baf45c3737..7b10ae09e6d1 100644 --- a/xml/dom-impl/src/com/intellij/util/xml/highlighting/DefineAttributeQuickFix.java +++ b/xml/dom-impl/src/com/intellij/util/xml/highlighting/DefineAttributeQuickFix.java @@ -24,7 +24,6 @@ import com.intellij.openapi.project.Project; import com.intellij.psi.xml.XmlAttribute; import com.intellij.psi.xml.XmlTag; import com.intellij.util.IncorrectOperationException; -import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; /** @@ -33,9 +32,15 @@ import org.jetbrains.annotations.NotNull; public class DefineAttributeQuickFix implements LocalQuickFix { private static final Logger LOG = Logger.getInstance("#com.intellij.spring.model.highlighting.DefineAttributeQuickFix"); private final String myAttrName; + private final String myNamespace; - public DefineAttributeQuickFix(@NonNls final String attrName) { + public DefineAttributeQuickFix(String attrName) { + this(attrName, ""); + } + + public DefineAttributeQuickFix(@NotNull final String attrName, @NotNull String namespace) { myAttrName = attrName; + myNamespace = namespace; } @NotNull @@ -52,7 +57,7 @@ public class DefineAttributeQuickFix implements LocalQuickFix { try { final XmlTag tag = (XmlTag)descriptor.getPsiElement(); if (!FileModificationService.getInstance().preparePsiElementForWrite(descriptor.getPsiElement().getContainingFile())) return; - final XmlAttribute attribute = tag.setAttribute(myAttrName, "", ""); + final XmlAttribute attribute = tag.setAttribute(myAttrName, myNamespace, ""); new OpenFileDescriptor(project, tag.getContainingFile().getVirtualFile(), attribute.getValueElement().getTextRange().getStartOffset() + 1).navigate(true); } diff --git a/xml/dom-impl/src/com/intellij/util/xml/highlighting/DomHighlightingHelperImpl.java b/xml/dom-impl/src/com/intellij/util/xml/highlighting/DomHighlightingHelperImpl.java index 6a2b5ec4a3c8..18490c58e050 100644 --- a/xml/dom-impl/src/com/intellij/util/xml/highlighting/DomHighlightingHelperImpl.java +++ b/xml/dom-impl/src/com/intellij/util/xml/highlighting/DomHighlightingHelperImpl.java @@ -69,17 +69,17 @@ public class DomHighlightingHelperImpl extends DomHighlightingHelper { if (xmlElement == null) { if (required.value()) { final String xmlElementName = element.getXmlElementName(); + String namespace = element.getXmlElementNamespace(); if (element instanceof GenericAttributeValue) { - return Collections.singletonList(holder - .createProblem(element, IdeBundle.message("attribute.0.should.be.defined", xmlElementName), - new DefineAttributeQuickFix(xmlElementName))); + return Collections.singletonList(holder.createProblem(element, IdeBundle.message("attribute.0.should.be.defined", xmlElementName), + new DefineAttributeQuickFix(xmlElementName, namespace))); } return Collections.singletonList( holder.createProblem( element, HighlightSeverity.ERROR, IdeBundle.message("child.tag.0.should.be.defined", xmlElementName), - new AddRequiredSubtagFix(xmlElementName, element.getXmlElementNamespace()) + new AddRequiredSubtagFix(xmlElementName, namespace) ) ); }