From 66bec63a70a753cf51a78724f7900c3241aa117b Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Mon, 23 May 2016 18:07:43 +0300 Subject: [PATCH] Preserve original file when performing copy for postfix template --- .../template/postfix/templates/PostfixLiveTemplate.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/template/postfix/templates/PostfixLiveTemplate.java b/platform/lang-impl/src/com/intellij/codeInsight/template/postfix/templates/PostfixLiveTemplate.java index d0d9c3b4a2cb..08ba6c04aa0b 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/template/postfix/templates/PostfixLiveTemplate.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/template/postfix/templates/PostfixLiveTemplate.java @@ -39,6 +39,7 @@ import com.intellij.psi.PsiDocumentManager; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiFileFactory; +import com.intellij.psi.impl.source.PsiFileImpl; import com.intellij.psi.util.PsiUtilCore; import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; @@ -278,6 +279,11 @@ public class PostfixLiveTemplate extends CustomLiveTemplateBase { public static PsiFile copyFile(@NotNull PsiFile file, @NotNull StringBuilder fileContentWithoutKey) { final PsiFileFactory psiFileFactory = PsiFileFactory.getInstance(file.getProject()); PsiFile copy = psiFileFactory.createFileFromText(file.getName(), file.getFileType(), fileContentWithoutKey); + + if (copy instanceof PsiFileImpl) { + ((PsiFileImpl) copy).setOriginalFile(file); + } + VirtualFile vFile = copy.getVirtualFile(); if (vFile != null) { vFile.putUserData(UndoConstants.DONT_RECORD_UNDO, Boolean.TRUE);