void (@NotNull CompletionParameters parameters, @NotNull CompletionResultSet result) { if (parameters.getCompletionType() != CompletionType.BASIC) { return; } final PsiElement position = parameters.getPosition(); if (!isInJavaContext(position)) { return; } if (BEGINNING_OF_ANNOTATION_ARGUMENTS.accepts(position)) { addVariants(position, (psiClass, isDeclared) -> addAnnotationClasses(psiClass, isDeclared, result)); //TODO handle annotations on fields and methods } else if (BEGINNING_OF_CONSTRUCTOR_ARGUMENTS.accepts(position)) { addVariants(position, (psiClass, isDeclared) -> addConstructorParameterTypes(psiClass, isDeclared, result)); } else if (JavaReflectionReferenceContributor.Holder.CLASS_PATTERN.accepts(position.getParent())) { JavaClassNameCompletionContributor.addAllClasses(parameters, parameters.getInvocationCount() <= 1, result.getPrefixMatcher(), result); } }