Support ${propName} inside relativePath.

This commit is contained in:
Sergey Evdokimov
2012-04-25 16:50:42 +04:00
parent a0b765115f
commit 21661c028d
2 changed files with 26 additions and 4 deletions
@@ -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<PsiFile
@NotNull
public PsiReference[] createReferences(final GenericDomValue genericDomValue, final PsiElement element, final ConvertContext context) {
return new MavenDirectoryPathReferenceConverter().createReferences(genericDomValue, element, context);
return new MavenPathReferenceConverter(new Condition<PsiFileSystemItem>() {
@Override
public boolean value(PsiFileSystemItem item) {
return item.isDirectory() || item.getName().equals("pom.xml");
}
}).createReferences(genericDomValue, element, context);
}
}
@@ -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 {
"<version>1</version>");
}
public void testCompletionRelativePath() throws Exception {
createProjectSubDir("src");
createProjectSubFile("a.txt", "");
VirtualFile modulePom = createModulePom("module1",
"<groupId>test</groupId>" +
"<artifactId>module1</artifactId>" +
"<version>1</version>" +
"<parent>" +
"<relativePath>../<caret></relativePath>" +
"</parent>");
assertCompletionVariants(modulePom, "src", "module1", "pom.xml");
}
public void testUnderstandingProjectSchemaWithoutNamespace() throws Exception {
VfsUtil.saveText(myProjectPom,
"<project>" +