From 3dfc8cda76940e53a3f1e3dfa7b0c91495b056c5 Mon Sep 17 00:00:00 2001 From: Andrey Starovoyt Date: Mon, 8 Sep 2014 19:12:41 +0400 Subject: [PATCH] handlebars fix error in tag moving: EA-60140 - CCE: XmlElementFactoryImpl.createXmlDocument --- .../src/com/intellij/psi/XmlElementFactoryImpl.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/xml/xml-psi-impl/src/com/intellij/psi/XmlElementFactoryImpl.java b/xml/xml-psi-impl/src/com/intellij/psi/XmlElementFactoryImpl.java index 6f40f853b777..20abde77589e 100644 --- a/xml/xml-psi-impl/src/com/intellij/psi/XmlElementFactoryImpl.java +++ b/xml/xml-psi-impl/src/com/intellij/psi/XmlElementFactoryImpl.java @@ -23,6 +23,7 @@ import com.intellij.lang.Language; import com.intellij.lang.xml.XMLLanguage; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.fileTypes.FileType; +import com.intellij.openapi.fileTypes.LanguageFileType; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.xml.*; @@ -109,7 +110,17 @@ public class XmlElementFactoryImpl extends XmlElementFactory { } private XmlDocument createXmlDocument(@NonNls final CharSequence text, @NonNls final String fileName, FileType fileType) { - final XmlDocument document = ((XmlFile)PsiFileFactory.getInstance(myProject).createFileFromText(fileName, fileType, text)).getDocument(); + PsiFile fileFromText = PsiFileFactory.getInstance(myProject).createFileFromText(fileName, fileType, text); + + XmlFile xmlFile; + if (fileFromText instanceof XmlFile) { + xmlFile = (XmlFile)fileFromText; + } + else { + xmlFile = (XmlFile)fileFromText.getViewProvider().getPsi(((LanguageFileType)fileType).getLanguage()); + assert xmlFile != null; + } + XmlDocument document = xmlFile.getDocument(); assert document != null; return document; }