@Contract(pure = true)
  public @NotNull List<@NotNull TextRange> getContentRanges() {
    final PsiSnippetDocTagValue valueElement = getValueElement();
    if (valueElement == null) return Collections.emptyList();

    final PsiSnippetDocTagBody body = valueElement.getBody();
    if (body == null) return Collections.emptyList();

    final ASTNode colon = getColonElement(body);
    if (colon == null) return Collections.emptyList();

    final int startOffset = colon.getTextRange().getEndOffset();

    final TextRange snippetBodyRange = body.getTextRange();

    final TextRange range = TextRange.create(startOffset, snippetBodyRange.getEndOffset());
    final TextRange snippetBodyTextRangeRelativeToSnippetTag = range.shiftLeft(getStartOffset());

    final String[] lines = snippetBodyTextRangeRelativeToSnippetTag.substring(getText()).split("\n");
    if (lines.length == 0) return Collections.singletonList(snippetBodyTextRangeRelativeToSnippetTag);

    return getRanges(snippetBodyTextRangeRelativeToSnippetTag, lines);
  }
@Contract(pure = true)
  public @NotNull List<@NotNull TextRange> getContentRanges()