@Override
  public @NotNull PsiElementVisitor buildVisitor(@NotNull ProblemsHolder holder, boolean isOnTheFly) {
    return new JavaElementVisitor() {
      @Override
      public void visitDocToken(@NotNull PsiDocToken token) {
        super.visitDocToken(token);
        if (token.getParent() instanceof PsiSnippetDocTagBody) return;
        PsiElement nextWhitespace = token.getNextSibling();
        PsiElement prevWhitespace = token.getPrevSibling();
        if (token.getTokenType() == JavaDocTokenType.DOC_COMMENT_LEADING_ASTERISKS &&
            prevWhitespace instanceof PsiWhiteSpace &&
            nextWhitespace instanceof PsiWhiteSpace &&
            !isAfterParagraphOrBlockTag(prevWhitespace) &&
            !isBeforeParagraphOrBlockTag(nextWhitespace) &&
            !isAfterPreTag(token)) {
          holder.problem(token, JavaBundle.message("inspection.javadoc.blank.lines.message"))
            .fix(new InsertParagraphTagFix(token)).register();
        }
      }
    };
  }
@Override
  public @NotNull PsiElementVisitor buildVisitor(@NotNull ProblemsHolder holder, boolean isOnTheFly)