boolean (@Nullable Project project, @NotNull Document document) { VirtualFile file = FileDocumentManager.getInstance().getFile(document); if (file == null) return document.isWritable(); if (!file.isValid()) return false; return makeWritable(project, file) && document.isWritable(); }