From 614ec17d6063dd91fc3c7cc026f7041b55434a37 Mon Sep 17 00:00:00 2001 From: anna Date: Fri, 22 Oct 2010 20:58:24 +0400 Subject: [PATCH] ignore ignored path variables (IDEA-59992) --- .../openapi/roots/impl/storage/ClasspathStorage.java | 2 +- .../openapi/project/impl/ProjectMacrosUtil.java | 10 ++++++++++ .../eclipse/importWizard/EclipseImportBuilder.java | 3 ++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/impl/storage/ClasspathStorage.java b/platform/lang-impl/src/com/intellij/openapi/roots/impl/storage/ClasspathStorage.java index da85b9a01c41..6ef958dfbf59 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/impl/storage/ClasspathStorage.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/impl/storage/ClasspathStorage.java @@ -125,7 +125,7 @@ public class ClasspathStorage implements StateStorage { } } - final boolean macrosOk = ProjectMacrosUtil.checkMacros(module.getProject(), macros); + final boolean macrosOk = ProjectMacrosUtil.checkNonIgnoredMacros(module.getProject(), macros); PathMacroManager.getInstance(module).expandPaths(element); ModuleRootManagerImpl.ModuleRootManagerState moduleRootManagerState = new ModuleRootManagerImpl.ModuleRootManagerState(); moduleRootManagerState.readExternal(element); diff --git a/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectMacrosUtil.java b/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectMacrosUtil.java index 14104dad4a48..c81e4d1b050b 100644 --- a/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectMacrosUtil.java +++ b/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectMacrosUtil.java @@ -53,6 +53,16 @@ public class ProjectMacrosUtil { return editor.isOK(); } + public static boolean checkNonIgnoredMacros(final Project project, final Set usedMacros){ + final PathMacros pathMacros = PathMacros.getInstance(); + for (Iterator iterator = usedMacros.iterator(); iterator.hasNext();) { + if (pathMacros.isIgnoredMacroName(iterator.next())) { + iterator.remove(); + } + } + return checkMacros(project, usedMacros); + } + public static boolean checkMacros(final Project project, final Set usedMacros) { final Set defined = getDefinedMacros(); usedMacros.removeAll(defined); diff --git a/plugins/eclipse/src/org/jetbrains/idea/eclipse/importWizard/EclipseImportBuilder.java b/plugins/eclipse/src/org/jetbrains/idea/eclipse/importWizard/EclipseImportBuilder.java index e470c90be21f..9969a4f0afcd 100644 --- a/plugins/eclipse/src/org/jetbrains/idea/eclipse/importWizard/EclipseImportBuilder.java +++ b/plugins/eclipse/src/org/jetbrains/idea/eclipse/importWizard/EclipseImportBuilder.java @@ -16,6 +16,7 @@ package org.jetbrains.idea.eclipse.importWizard; import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.application.PathMacros; import com.intellij.openapi.application.ex.ApplicationInfoEx; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.fileChooser.FileChooser; @@ -170,7 +171,7 @@ public class EclipseImportBuilder extends ProjectImportBuilder implement return false; } - if (!ProjectMacrosUtil.checkMacros(dstProject, variables)) { + if (!ProjectMacrosUtil.checkNonIgnoredMacros(dstProject, variables)) { return false; }