From 21661c028deb40db37526131c0ecd8f0caa9f000 Mon Sep 17 00:00:00 2001 From: Sergey Evdokimov Date: Wed, 25 Apr 2012 16:20:42 +0400 Subject: [PATCH] Support ${propName} inside relativePath. --- .../MavenParentRelativePathConverter.java | 13 +++++++++---- .../maven/dom/MavenModelValidationTest.java | 17 +++++++++++++++++ 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/converters/MavenParentRelativePathConverter.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/converters/MavenParentRelativePathConverter.java index 96f9df74dd85..d3de800cc055 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/converters/MavenParentRelativePathConverter.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/converters/MavenParentRelativePathConverter.java @@ -17,13 +17,13 @@ package org.jetbrains.idea.maven.dom.converters; import com.intellij.codeInspection.LocalQuickFix; import com.intellij.codeInspection.ProblemDescriptor; -import com.intellij.openapi.paths.PathReferenceManager; import com.intellij.openapi.project.Project; +import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; -import com.intellij.psi.PsiManager; +import com.intellij.psi.PsiFileSystemItem; import com.intellij.psi.PsiReference; import com.intellij.util.ArrayUtil; import com.intellij.util.xml.*; @@ -33,7 +33,7 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.idea.maven.dom.MavenDomBundle; import org.jetbrains.idea.maven.dom.MavenDomUtil; import org.jetbrains.idea.maven.dom.model.MavenDomProjectModel; -import org.jetbrains.idea.maven.dom.references.MavenDirectoryPathReferenceConverter; +import org.jetbrains.idea.maven.dom.references.MavenPathReferenceConverter; import org.jetbrains.idea.maven.model.MavenConstants; import org.jetbrains.idea.maven.model.MavenId; import org.jetbrains.idea.maven.project.MavenProject; @@ -119,6 +119,11 @@ public class MavenParentRelativePathConverter extends ResolvingConverter() { + @Override + public boolean value(PsiFileSystemItem item) { + return item.isDirectory() || item.getName().equals("pom.xml"); + } + }).createReferences(genericDomValue, element, context); } } \ No newline at end of file diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenModelValidationTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenModelValidationTest.java index a17d10e7cf1e..84262aaa7fbe 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenModelValidationTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenModelValidationTest.java @@ -18,6 +18,8 @@ package org.jetbrains.idea.maven.dom; import com.intellij.openapi.vfs.VfsUtil; import com.intellij.openapi.vfs.VirtualFile; +import java.io.IOException; + public class MavenModelValidationTest extends MavenDomWithIndicesTestCase { @Override protected void setUpInWriteAction() throws Exception { @@ -27,6 +29,21 @@ public class MavenModelValidationTest extends MavenDomWithIndicesTestCase { "1"); } + public void testCompletionRelativePath() throws Exception { + createProjectSubDir("src"); + createProjectSubFile("a.txt", ""); + + VirtualFile modulePom = createModulePom("module1", + "test" + + "module1" + + "1" + + "" + + "../" + + ""); + + assertCompletionVariants(modulePom, "src", "module1", "pom.xml"); + } + public void testUnderstandingProjectSchemaWithoutNamespace() throws Exception { VfsUtil.saveText(myProjectPom, "" +