@NotNull
  public static List<List<PsiComment>> getPrecedingCommentBlocks(@NotNull PsiElement element) {
    List<List<PsiComment>> blocks = new ArrayList<>();
    PsiElement anchor = element;
    do {
      Pair<List<PsiComment>, PsiElement> blockAndAnchor = getPrecedingCommentsAndAnchor(anchor, true, false);
      anchor = blockAndAnchor.getSecond();
      List<PsiComment> block = blockAndAnchor.getFirst();
      if (!block.isEmpty() || anchor instanceof PsiComment) {
        blocks.add(block);
      }
    }
    while (anchor instanceof PsiComment);
    Collections.reverse(blocks);
    return blocks;
  }
@NotNull
  public static List<List<PsiComment>> getPrecedingCommentBlocks(@NotNull PsiElement element)