From 006b5cd1ab45f53321ff664f46b1335ec018c807 Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 15 Dec 2011 14:35:40 +0100 Subject: [PATCH] IDEA-78863 Live templates are not accessible in read-only file (e.g. versioned in Perforce or TFS) --- .../codeInsight/template/impl/ListTemplatesHandler.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/ListTemplatesHandler.java b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/ListTemplatesHandler.java index 6831a726575d..7ce8a60063e8 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/ListTemplatesHandler.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/ListTemplatesHandler.java @@ -29,6 +29,7 @@ import com.intellij.openapi.command.WriteCommandAction; import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.editor.ex.util.EditorUtil; +import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiDocumentManager; import com.intellij.psi.PsiFile; @@ -40,7 +41,9 @@ import java.util.Map; public class ListTemplatesHandler implements CodeInsightActionHandler { public void invoke(@NotNull final Project project, @NotNull final Editor editor, @NotNull PsiFile file) { - if (!file.isWritable()) return; + if (!FileDocumentManager.getInstance().requestWriting(editor.getDocument(), project)) { + return; + } EditorUtil.fillVirtualSpaceUntilCaret(editor); PsiDocumentManager.getInstance(project).commitDocument(editor.getDocument());