[clang-tools-extra] [Clang-doc] Display values and comments in MD (PR #183754)

Paul Kirth via cfe-commits cfe-commits at lists.llvm.org
Thu Mar 5 13:57:00 PST 2026


================
@@ -67,28 +68,42 @@ static void writeSourceFileRef(const ClangDocContext &CDCtx, const Location &L,
   OS << "\n\n";
 }
 
-static std::string genRawText(const std::vector<CommentInfo> &Comments) {
-  std::string Result;
-  llvm::raw_string_ostream OS(Result);
-  std::queue<const CommentInfo *> Q;
-  for (const auto &CI : Comments)
-    Q.push(&CI);
-  const CommentInfo *Comment;
-  bool First = true;
-  while (Q.size()) {
-    Comment = Q.front();
-    Q.pop();
-    if (!Comment->Text.empty()) {
-      if (!First)
-        OS << "<br>";
-      else
-        First = false;
-      OS << Comment->Text;
+static void extractChildComment(const CommentInfo &Comment,
+                                llvm::raw_ostream &OS, bool &FirstLine,
+                                bool &FirstParagraph, bool &ParagraphBreak) {
----------------
ilovepi wrote:

> > Additionally, it seems to me that building this up as a string is adding some complexity that I'm not a huge fan of... have you considered other options? you're eventually writing this to a stream anyway, so why not just skip the middle man?
> 
> We could write straight to the `Members` stream in `genMarkdown()`. This approach would require no string usage. But since we currently have `Members << "| " << (CommentString.empty() ? "--" : CommentString) << " ";` in `genMarkdown()`, we would need to store the `genCommentString()` output or a boolean somewhere and check whether its empty before passing to the stream. Are you okay with having a string / boolean inside `genCommentString()` or do you suggest omitting the `--` printed for empty comments?


Can't that bit about empty output be done in the callee?

https://github.com/llvm/llvm-project/pull/183754


More information about the cfe-commits mailing list