Don't activate top level completion in user types after dot
This commit is contained in:
@@ -264,8 +264,18 @@ public class JetCompletionContributor extends CompletionContributor {
|
|||||||
if (element.getParent() instanceof JetSimpleNameExpression) {
|
if (element.getParent() instanceof JetSimpleNameExpression) {
|
||||||
JetSimpleNameExpression nameExpression = (JetSimpleNameExpression)element.getParent();
|
JetSimpleNameExpression nameExpression = (JetSimpleNameExpression)element.getParent();
|
||||||
|
|
||||||
// Top level completion should be executed for simple which is not in qualified expression
|
// Top level completion should be executed for simple name which is not in qualified expression
|
||||||
return (PsiTreeUtil.getParentOfType(nameExpression, JetQualifiedExpression.class) == null);
|
if (PsiTreeUtil.getParentOfType(nameExpression, JetQualifiedExpression.class) != null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Don't call top level completion in qualified named position of user type
|
||||||
|
PsiElement parent = nameExpression.getParent();
|
||||||
|
if (parent instanceof JetUserType && ((JetUserType) parent).getQualifier() != null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
class Test : java.lang.A<caret>
|
||||||
|
|
||||||
|
// ABSENT: Annotation
|
||||||
@@ -172,6 +172,10 @@ public class JetBasicCompletionTest extends JetCompletionTestBase {
|
|||||||
doTest();
|
doTest();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testNoTopLevelCompletionInQualifiedUserTypes() {
|
||||||
|
doTest();
|
||||||
|
}
|
||||||
|
|
||||||
public void testOnlyScopedClassesWithoutExplicit() {
|
public void testOnlyScopedClassesWithoutExplicit() {
|
||||||
doTest();
|
doTest();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user