void (CompletionResultSet result, PsiElement position, final PsiParameter param) { final Set<String> descriptions = new HashSet<>(); position.getContainingFile().accept(new PsiRecursiveElementWalkingVisitor() { @Override public void visitElement(@NotNull PsiElement element) { PsiParameter param1 = getDocTagParam(element); if (param1 != null && param1 != param && Objects.equals(param1.getName(), param.getName()) && Comparing.equal(param1.getType(), param.getType())) { StringBuilder sb = new StringBuilder(); for (PsiElement psiElement : ((PsiDocTag)element).getDataElements()) { if (psiElement != ((PsiDocTag)element).getValueElement()) { sb.append(psiElement.getText()); } } String text = sb.toString().trim(); if (text.contains(" ")) { descriptions.add(text); } } super.visitElement(element); } }); for (String description : descriptions) { result.addElement(PrioritizedLookupElement.withPriority( LookupElementBuilder.create(description).withInsertHandler(PARAM_DESCRIPTION_INSERT_HANDLER), 1)); } }