don't suggest top-level packages in expression code fragments, they get in the way

This commit is contained in:
peter.gromov
2010-10-07 17:36:56 +04:00
parent a0301519ec
commit 42cbb2a3dd
2 changed files with 20 additions and 1 deletions

View File

@@ -366,7 +366,9 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements
public void processVariants(PsiScopeProcessor processor) {
OrFilter filter = new OrFilter();
filter.addFilter(ElementClassFilter.CLASS);
filter.addFilter(ElementClassFilter.PACKAGE_FILTER);
if (isQualified()) {
filter.addFilter(ElementClassFilter.PACKAGE_FILTER);
}
filter.addFilter(new AndFilter(ElementClassFilter.METHOD, new NotFilter(new ConstructorFilter())));
filter.addFilter(ElementClassFilter.VARIABLE);

View File

@@ -33,6 +33,23 @@ public class NormalCompletionTest extends LightFixtureCompletionTestCase {
assertEmpty(myItems);
}
public void testNoPackagesInExpressionCodeFragment() throws Throwable {
final String text = "jav<caret>";
PsiFile file = getJavaFacade().getElementFactory().createExpressionCodeFragment(text, null, null, true);
myFixture.configureFromExistingVirtualFile(file.getVirtualFile());
complete();
myFixture.checkResult(text);
assertEmpty(myItems);
}
public void testSubPackagesInExpressionCodeFragment() throws Throwable {
PsiFile file = getJavaFacade().getElementFactory().createExpressionCodeFragment("java.la<caret>", null, null, true);
myFixture.configureFromExistingVirtualFile(file.getVirtualFile());
complete();
myFixture.checkResult("java.lang.<caret>");
assertNull(myItems);
}
private JavaPsiFacade getJavaFacade() {
return JavaPsiFacade.getInstance(getProject());
}