private static void suggestTags(@NotNull CompletionParameters parameters,
                                  @NotNull CompletionResultSet result,
                                  @NotNull PsiElement position,
                                  boolean forceInlineTag) {
    TextRange rangeBefore = new TextRange(position.getTextRange().getStartOffset(), parameters.getOffset());
    boolean hasOpeningBrace = rangeBefore.isEmpty() && position.getPrevSibling() != null &&
                              position.getPrevSibling().textMatches("{");
    boolean isInline = hasOpeningBrace || forceInlineTag || !parameters.getEditor().getDocument().getText(rangeBefore).isBlank();
    List<String> tags = getTags(position, isInline);
    for (String tag : tags) {
      if (isInline) {
        String lookupString = hasOpeningBrace ? "@" + tag : "{@" + tag + "}";
        result.addElement(LookupElementDecorator.withInsertHandler(LookupElementBuilder.create(lookupString), new InlineInsertHandler()));
      }
      else {
        result.addElement(TailTypeDecorator.withTail((LookupElement)LookupElementBuilder.create("@" + tag), TailTypes.insertSpaceType()));
      }
    }
  }
private static void suggestTags(@NotNull CompletionParameters parameters,
                                  @NotNull CompletionResultSet result,
                                  @NotNull PsiElement position,
                                  boolean forceInlineTag)