boolean (@NotNull VirtualFile file, @NotNull Project project) { for (NonProjectFileWritingAccessExtension each : NonProjectFileWritingAccessExtension.EP_NAME.getExtensionList(project)) { if (each.isWritable(file)) { return true; } if (each.isNotWritable(file)) { return false; } } ProjectFileIndex fileIndex = ProjectFileIndex.getInstance(project); if (fileIndex.isInContent(file)) return true; if (!Registry.is("ide.hide.excluded.files") && fileIndex.isExcluded(file) && !fileIndex.isUnderIgnored(file)) return true; if (project instanceof ProjectEx && !project.isDefault()) { if (ProjectKt.getStateStore(project).isProjectFile(file)) { return true; } String filePath = file.getPath(); for (Module module : ModuleManager.getInstance(project).getModules()) { if (VfsUtilCore.pathEqualsTo(file, module.getModuleFilePath())) { return true; } } } return false; }