String (final VirtualFile file) { if (file == null) return ""; return ReadAction.compute(() -> { if (myProject.isDisposed()) return file.getPresentableUrl(); boolean hideExcludedFiles = Registry.is("ide.hide.excluded.files"); ProjectFileIndex fileIndex = ProjectRootManager.getInstance(myProject).getFileIndex(); Module module = fileIndex.getModuleForFile(file, hideExcludedFiles); VirtualFile contentRoot = fileIndex.getContentRootForFile(file, hideExcludedFiles); if (module == null || contentRoot == null) return file.getPresentableUrl(); String relativePath = VfsUtilCore.getRelativePath(file, contentRoot, File.separatorChar); assert relativePath != null; return getPresentableRelativePathFor(module, contentRoot, relativePath); }); }