From cf888c653fa703dbeb37b9a60a6db866de69a0b4 Mon Sep 17 00:00:00 2001 From: "Maxim.Mossienko" Date: Thu, 6 Jun 2013 09:59:20 +0200 Subject: [PATCH] isProjectOrWorkspaceFile works without retrieving getPath for virtualfile --- .../src/com/intellij/openapi/project/ProjectCoreUtil.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/platform/core-api/src/com/intellij/openapi/project/ProjectCoreUtil.java b/platform/core-api/src/com/intellij/openapi/project/ProjectCoreUtil.java index f9624cbf3a7f..83e8b6924fd4 100644 --- a/platform/core-api/src/com/intellij/openapi/project/ProjectCoreUtil.java +++ b/platform/core-api/src/com/intellij/openapi/project/ProjectCoreUtil.java @@ -9,7 +9,6 @@ import com.intellij.openapi.vfs.VirtualFile; */ public class ProjectCoreUtil { public static final String DIRECTORY_BASED_PROJECT_DIR = ".idea"; - private static final String PROJECT_DIR_PATTERN = "/"+ DIRECTORY_BASED_PROJECT_DIR +"/"; public static boolean isProjectOrWorkspaceFile(final VirtualFile file) { return isProjectOrWorkspaceFile(file, file.getFileType()); @@ -18,6 +17,11 @@ public class ProjectCoreUtil { public static boolean isProjectOrWorkspaceFile(final VirtualFile file, final FileType fileType) { if (fileType instanceof InternalFileType) return true; - return file.getPath().contains(PROJECT_DIR_PATTERN); + VirtualFile parent = file.getParent(); + while(parent != null) { + if (DIRECTORY_BASED_PROJECT_DIR.equals(parent.getName())) return true; + parent = parent.getParent(); + } + return false; } }