IDEA-102411 Package field auto-completion popup shows constants

This commit is contained in:
peter
2013-03-04 18:23:34 +01:00
parent 6b81b1866a
commit 6b94d4e3d5
2 changed files with 16 additions and 1 deletions
@@ -110,7 +110,12 @@ public class JavaNoVariantsDelegator extends CompletionContributor {
return;
}
String fullPrefix = position.getContainingFile().getText().substring(parent.getTextRange().getStartOffset(), parameters.getOffset());
PsiFile file = position.getContainingFile();
if (file instanceof PsiJavaCodeReferenceCodeFragment) {
return;
}
String fullPrefix = file.getText().substring(parent.getTextRange().getStartOffset(), parameters.getOffset());
CompletionResultSet qualifiedCollector = result.withPrefixMatcher(fullPrefix);
ElementFilter filter = JavaCompletionContributor.getReferenceFilter(position);
for (LookupElement base : suggestQualifierItems(parameters, (PsiJavaCodeReferenceElement)qualifier, filter)) {
@@ -51,6 +51,16 @@ public class FragmentCompletionTest extends LightCodeInsightFixtureTestCase {
myFixture.checkResult(text)
}
public void "test no constants in reference code fragment"() throws Throwable {
myFixture.addClass("package foo; public interface FooIntf { int constant = 2 }")
def text = "FooInt.con<caret>"
PsiFile file = JavaCodeFragmentFactory.getInstance(project).createReferenceCodeFragment(text, null, true, false);
myFixture.configureFromExistingVirtualFile(file.getVirtualFile());
assert !myFixture.complete(CompletionType.BASIC, 2)
myFixture.checkResult(text)
}
public void testNoPackagesInExpressionCodeFragment() throws Throwable {
final String text = "jav<caret>";
PsiFile file = JavaCodeFragmentFactory.getInstance(project).createExpressionCodeFragment(text, null, null, true);