in src/java/org/jetbrains/plugins/clojure/psi/resolve/completion/ClojureClassNameCompletionContributor.java [19:44]
public static void completeClassName(final CompletionParameters parameters, final CompletionResultSet result) {
final PsiElement position = parameters.getPosition();
final PsiElement parent = position.getParent();
if (!(parent instanceof ClSymbol)) return;
ClSymbol symbol = (ClSymbol) parent;
if (symbol.getQualifierSymbol() != null) return;
final PsiElement list = symbol.getParent();
final boolean isInImport;
if (list instanceof ClList) {
isInImport = ((ClList) list).getFirstSymbol().getNameString().equals(ListDeclarations.IMPORT);
} else {
isInImport = false;
}
final PrefixMatcher prefixMatcher = result.getPrefixMatcher();
final boolean filterByScope = parameters.getInvocationCount() <= 1;
AllClassesGetter.processJavaClasses(parameters, prefixMatcher, filterByScope,
new Consumer<PsiClass>() {
public void consume(final PsiClass clazz) {
if (!AllClassesGetter.isAcceptableInContext(position, clazz, filterByScope, true)) return;
final ClojureLookupItem lookupItem = new ClojureLookupItem(clazz);
lookupItem.setClassName(true);
lookupItem.setInImport(isInImport);
result.addElement(lookupItem);
}
});
}