diff --git a/xml/impl/resources/liveTemplates/zen_html.xml b/xml/impl/resources/liveTemplates/zen_html.xml
index 76a1d65d4779..acb372af0c34 100644
--- a/xml/impl/resources/liveTemplates/zen_html.xml
+++ b/xml/impl/resources/liveTemplates/zen_html.xml
@@ -159,6 +159,14 @@
+
+
+
+
+
+
@@ -397,13 +405,13 @@
-
+
-
+
diff --git a/xml/impl/src/com/intellij/codeInsight/template/emmet/tokens/TemplateToken.java b/xml/impl/src/com/intellij/codeInsight/template/emmet/tokens/TemplateToken.java
index 0f0cfa59019f..bd06376373cd 100644
--- a/xml/impl/src/com/intellij/codeInsight/template/emmet/tokens/TemplateToken.java
+++ b/xml/impl/src/com/intellij/codeInsight/template/emmet/tokens/TemplateToken.java
@@ -22,13 +22,9 @@ import com.intellij.openapi.command.undo.UndoConstants;
import com.intellij.openapi.fileTypes.StdFileTypes;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiFileFactory;
-import com.intellij.psi.XmlElementFactory;
-import com.intellij.psi.xml.XmlAttribute;
import com.intellij.psi.xml.XmlFile;
import com.intellij.psi.xml.XmlTag;
-import com.intellij.util.ArrayUtil;
import com.intellij.util.LocalTimeCounter;
-import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -100,7 +96,7 @@ public class TemplateToken extends ZenCodingToken {
String templateString = template.getString();
final PsiFileFactory psiFileFactory = PsiFileFactory.getInstance(callback.getProject());
if (!containsAttrsVar(template)) {
- XmlFile dummyFile = (XmlFile)psiFileFactory.createFileFromText("dummy.xml", StdFileTypes.XML, templateString);
+ XmlFile dummyFile = (XmlFile)psiFileFactory.createFileFromText("dummy.xml", StdFileTypes.HTML, templateString);
dummyRootTag = dummyFile.getRootTag();
if (dummyRootTag != null) {
addMissingAttributes(dummyRootTag, attributes);
@@ -119,30 +115,14 @@ public class TemplateToken extends ZenCodingToken {
private static void addMissingAttributes(@NotNull XmlTag tag, @NotNull Map attributes) {
- Map missingAttributes = ContainerUtil.newLinkedHashMap();
for (Map.Entry attribute : attributes.entrySet()) {
if (!XmlEmmetParser.DEFAULT_ATTRIBUTE_NAME.equals(attribute.getKey()) && tag.getAttribute(attribute.getKey()) == null) {
- missingAttributes.put(attribute.getKey(), attribute.getValue());
- }
- }
- addAttributesBefore(tag, missingAttributes);
- }
-
-
- private static void addAttributesBefore(@NotNull XmlTag tag, @NotNull Map attributes) {
- XmlAttribute firstAttribute = ArrayUtil.getFirstElement(tag.getAttributes());
- XmlElementFactory factory = XmlElementFactory.getInstance(tag.getProject());
- for (String name : attributes.keySet()) {
- XmlAttribute xmlAttribute = factory.createXmlAttribute(name, "");
- if (firstAttribute != null) {
- tag.addBefore(xmlAttribute, firstAttribute);
- }
- else {
- tag.add(xmlAttribute);
+ tag.setAttribute(attribute.getKey(), "");
}
}
}
+
@Nullable
public TemplateImpl getTemplate() {
return myTemplate;