Merge branch 'set-original' of https://github.com/dzharkov/intellij-community
authorAndrey Starovoyt <andrey.starovoyt@jetbrains.com>
Fri, 10 Jun 2016 09:39:05 +0000 (12:39 +0300)
committerAndrey Starovoyt <andrey.starovoyt@jetbrains.com>
Fri, 10 Jun 2016 09:39:05 +0000 (12:39 +0300)
1  2 
platform/lang-impl/src/com/intellij/codeInsight/template/postfix/templates/PostfixLiveTemplate.java

index 7b3ac17ba00c69758a724d876bc7eca84741dbdb,08ba6c04aa0bc91de62d66a2d8d67ed5283a6545..a4c108495182e361281f696ae5990dad4a5e0756
@@@ -39,6 -39,7 +39,7 @@@ import com.intellij.psi.PsiDocumentMana
  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;
@@@ -220,7 -221,9 +221,7 @@@ public class PostfixLiveTemplate extend
    private static void expandTemplate(@NotNull final PostfixTemplate template,
                                       @NotNull final Editor editor,
                                       @NotNull final PsiElement context) {
 -    ApplicationManager.getApplication().runWriteAction(() -> {
 -      CommandProcessor.getInstance().executeCommand(context.getProject(), () -> template.expand(context, editor), "Expand postfix template", POSTFIX_TEMPLATE_ID);
 -    });
 +    ApplicationManager.getApplication().runWriteAction(() -> CommandProcessor.getInstance().executeCommand(context.getProject(), () -> template.expand(context, editor), "Expand postfix template", POSTFIX_TEMPLATE_ID));
    }
  
  
  
      final int currentOffset = editor.getCaretModel().getOffset();
      final int newOffset = currentOffset - key.length();
 -    ApplicationManager.getApplication().runWriteAction(() -> {
 -      CommandProcessor.getInstance().runUndoTransparentAction(() -> {
 -        Document document = editor.getDocument();
 -        document.deleteString(newOffset, currentOffset);
 -        editor.getCaretModel().moveToOffset(newOffset);
 -        PsiDocumentManager.getInstance(file.getProject()).commitDocument(document);
 -      });
 -    });
 +    ApplicationManager.getApplication().runWriteAction(() -> CommandProcessor.getInstance().runUndoTransparentAction(() -> {
 +      Document document = editor.getDocument();
 +      document.deleteString(newOffset, currentOffset);
 +      editor.getCaretModel().moveToOffset(newOffset);
 +      PsiDocumentManager.getInstance(file.getProject()).commitDocument(document);
 +    }));
      return newOffset;
    }
  
  
      final PsiElement context = CustomTemplateCallback.getContext(copyFile, positiveOffset(newOffset));
      final Document finalCopyDocument = copyDocument;
 -    return new Condition<PostfixTemplate>() {
 -      @Override
 -      public boolean value(PostfixTemplate template) {
 -        return template != null && template.isEnabled(provider) && template.isApplicable(context, finalCopyDocument, newOffset);
 -      }
 -    };
 +    return template -> template != null && template.isEnabled(provider) && template.isApplicable(context, finalCopyDocument, newOffset);
    }
  
    @NotNull
    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);