@Override
  public void fillCompletionVariants(final @NotNull CompletionParameters parameters, final @NotNull CompletionResultSet result) {
    PsiElement position = parameters.getPosition();
    if (position instanceof PsiDocToken && ((PsiDocToken)position).getTokenType() == JavaDocTokenType.DOC_TAG_VALUE_TOKEN) {
      PsiElement parent = position.getParent();
      if (parent instanceof PsiDocTagValue && !(parent instanceof PsiDocParamRef) && !(parent instanceof PsiDocMethodOrFieldRef)) {
        PsiDocTag docTag = ObjectUtils.tryCast(parent.getParent(), PsiDocTag.class);
        if (docTag != null) {
          JavadocManager docManager = JavadocManager.getInstance(parameters.getOriginalFile().getProject());
          JavadocTagInfo info = docManager.getTagInfo(docTag.getName());
          if (info != null) {
            // Avoid suggesting standard tags inside custom tag value, as custom tag may require custom value (e.g., reference)
            suggestTags(parameters, result, position, true);
          }
        }
      }
    }
    if (PsiJavaPatterns.psiElement(JavaDocTokenType.DOC_COMMENT_DATA).accepts(position)) {
      final PsiParameter param = getDocTagParam(position.getParent());
      if (param != null) {
        suggestSimilarParameterDescriptions(result, position, param);
      }

      if (!(position.getParent() instanceof PsiInlineDocTag)) {
        suggestLinkWrappingVariants(parameters, result.withPrefixMatcher(CompletionUtil.findJavaIdentifierPrefix(parameters)), position);
      }

      suggestCodeLiterals(result, position);

      suggestTags(parameters, result, position, false);

      return;
    }

    super.fillCompletionVariants(parameters, result);
  }
@Override
  public void fillCompletionVariants(final @NotNull CompletionParameters parameters, final @NotNull CompletionResultSet result)