From ac2834b2ba6d8aa291f161caab3be2fbbc7895a4 Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 15 Sep 2010 23:05:16 +0100 Subject: [PATCH] under USER_HOME, prefer storing paths relatively MODULE_DIR unless the common ancestor is USER_HOME itself (IDEA-58205, IDEA-58057) --- .../openapi/components/impl/ModulePathMacroManager.java | 9 ++++++++- .../openapi/components/impl/BasePathMacroManager.java | 8 ++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/openapi/components/impl/ModulePathMacroManager.java b/platform/lang-impl/src/com/intellij/openapi/components/impl/ModulePathMacroManager.java index a5ed8206ea55..b51364ca829f 100644 --- a/platform/lang-impl/src/com/intellij/openapi/components/impl/ModulePathMacroManager.java +++ b/platform/lang-impl/src/com/intellij/openapi/components/impl/ModulePathMacroManager.java @@ -49,7 +49,14 @@ public class ModulePathMacroManager extends BasePathMacroManager { if (projectDir != null) { projectDir = projectDir.replace('/', File.separatorChar); } - addFileHierarchyReplacements(result, PathMacrosImpl.MODULE_DIR_MACRO_NAME, getModuleDir(myModule.getModuleFilePath()), projectDir); + String stopAt = projectDir; + + final String userHome = getUserHome(); + if (stopAt != null && stopAt.startsWith(userHome)) { + stopAt = userHome; + } + + addFileHierarchyReplacements(result, PathMacrosImpl.MODULE_DIR_MACRO_NAME, getModuleDir(myModule.getModuleFilePath()), stopAt); } return result; } diff --git a/platform/platform-impl/src/com/intellij/openapi/components/impl/BasePathMacroManager.java b/platform/platform-impl/src/com/intellij/openapi/components/impl/BasePathMacroManager.java index b06b42197040..6cd1318ef1f8 100644 --- a/platform/platform-impl/src/com/intellij/openapi/components/impl/BasePathMacroManager.java +++ b/platform/platform-impl/src/com/intellij/openapi/components/impl/BasePathMacroManager.java @@ -75,17 +75,21 @@ public class BasePathMacroManager extends PathMacroManager { public ExpandMacroToPathMap getExpandMacroMap() { ExpandMacroToPathMap result = new ExpandMacroToPathMap(); result.addMacroExpand(PathMacrosImpl.APPLICATION_HOME_MACRO_NAME, PathManager.getHomePath()); - result.addMacroExpand(PathMacrosImpl.USER_HOME_MACRO_NAME, SystemProperties.getUserHome()); + result.addMacroExpand(PathMacrosImpl.USER_HOME_MACRO_NAME, getUserHome()); getPathMacros().addMacroExpands(result); return result; } + protected static String getUserHome() { + return SystemProperties.getUserHome(); + } + public ReplacePathToMacroMap getReplacePathMap() { ReplacePathToMacroMap result = new ReplacePathToMacroMap(); result.addMacroReplacement(PathManager.getHomePath(), PathMacrosImpl.APPLICATION_HOME_MACRO_NAME); - result.addMacroReplacement(SystemProperties.getUserHome(), PathMacrosImpl.USER_HOME_MACRO_NAME); + result.addMacroReplacement(getUserHome(), PathMacrosImpl.USER_HOME_MACRO_NAME); getPathMacros().addMacroReplacements(result); return result; } -- 2.32.0