[llvm-branch-commits] [clang-tools-extra] [clang-doc] add param comments to comment template (PR #150470)
Erick Velez via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Thu Jul 24 19:53:33 PDT 2025
https://github.com/evelez7 updated https://github.com/llvm/llvm-project/pull/150470
>From 98172493abfb2c93caefe2424dd17b93d32c17a0 Mon Sep 17 00:00:00 2001
From: Erick Velez <erickvelez7 at gmail.com>
Date: Tue, 22 Jul 2025 21:15:36 -0700
Subject: [PATCH] [clang-doc] add param comments to comment template
---
clang-tools-extra/clang-doc/JSONGenerator.cpp | 6 +-
.../assets/comment-template.mustache | 8 +
.../clang-doc/basic-project.mustache.test | 180 +++++++++---------
3 files changed, 102 insertions(+), 92 deletions(-)
diff --git a/clang-tools-extra/clang-doc/JSONGenerator.cpp b/clang-tools-extra/clang-doc/JSONGenerator.cpp
index 92a4117c4e534..5fc28406ee870 100644
--- a/clang-tools-extra/clang-doc/JSONGenerator.cpp
+++ b/clang-tools-extra/clang-doc/JSONGenerator.cpp
@@ -147,8 +147,10 @@ static Object serializeComment(const CommentInfo &I, Object &Description) {
Child.insert({"ParamName", I.ParamName});
Child.insert({"Direction", I.Direction});
Child.insert({"Explicit", I.Explicit});
- Child.insert({"Children", ChildArr});
- Obj.insert({commentKindToString(I.Kind), ChildVal});
+ auto TextCommentsArray = extractTextComments(CARef.front().getAsObject());
+ Child.insert({"Children", TextCommentsArray});
+ if (I.Kind == CommentKind::CK_ParamCommandComment)
+ insertComment(Description, ChildVal, "ParamComments");
return Obj;
}
diff --git a/clang-tools-extra/clang-doc/assets/comment-template.mustache b/clang-tools-extra/clang-doc/assets/comment-template.mustache
index f2edb1b2eb9ac..d55a53194ee5c 100644
--- a/clang-tools-extra/clang-doc/assets/comment-template.mustache
+++ b/clang-tools-extra/clang-doc/assets/comment-template.mustache
@@ -24,6 +24,14 @@
{{>Comments}}
{{/Children}}
{{/ParagraphComment}}
+{{#HasParamComments}}
+ <h3>Parameters</h3>
+ {{#ParamComments}}
+ <div>
+ <b>{{ParamName}}</b> {{#Explicit}}{{Direction}}{{/Explicit}} {{#Children}}{{>Comments}}{{/Children}}
+ </div>
+ {{/ParamComments}}
+{{/HasParamComments}}
{{#BlockCommandComment}}
<div class="block-command-comment__command">
<div class="block-command-command">
diff --git a/clang-tools-extra/test/clang-doc/basic-project.mustache.test b/clang-tools-extra/test/clang-doc/basic-project.mustache.test
index 807ba1319e393..b55e0abe2cdef 100644
--- a/clang-tools-extra/test/clang-doc/basic-project.mustache.test
+++ b/clang-tools-extra/test/clang-doc/basic-project.mustache.test
@@ -259,24 +259,24 @@ HTML-CALC: <p></p>
HTML-CALC: </div>
HTML-CALC: <div>
HTML-CALC: <p></p>
-HTML-CALC-NOT: </div>
-HTML-CALC-NOT: <h3>Parameters</h3>
-HTML-CALC-NOT: <div>
-HTML-CALC-NOT: <b>a</b> <div>
-HTML-CALC-NOT: <p> First integer.</p>
-HTML-CALC-NOT: </div>
-HTML-CALC-NOT: <div>
-HTML-CALC-NOT: <p></p>
-HTML-CALC-NOT: </div>
-HTML-CALC-NOT: </div>
-HTML-CALC-NOT: <div>
-HTML-CALC-NOT: <b>b</b> <div>
-HTML-CALC-NOT: <p> Second integer.</p>
-HTML-CALC-NOT: </div>
-HTML-CALC-NOT: <div>
-HTML-CALC-NOT: <p></p>
-HTML-CALC-NOT: </div>
-HTML-CALC-NOT: </div>
+HTML-CALC: </div>
+HTML-CALC: <h3>Parameters</h3>
+HTML-CALC: <div>
+HTML-CALC: <b>a</b> <div>
+HTML-CALC: <p> First integer.</p>
+HTML-CALC: </div>
+HTML-CALC: <div>
+HTML-CALC: <p></p>
+HTML-CALC: </div>
+HTML-CALC: </div>
+HTML-CALC: <div>
+HTML-CALC: <b>b</b> <div>
+HTML-CALC: <p> Second integer.</p>
+HTML-CALC: </div>
+HTML-CALC: <div>
+HTML-CALC: <p></p>
+HTML-CALC: </div>
+HTML-CALC: </div>
HTML-CALC: </div>
HTML-CALC: </div>
HTML-CALC: </div>
@@ -316,24 +316,24 @@ HTML-CALC: <p></p>
HTML-CALC: </div>
HTML-CALC: <div>
HTML-CALC: <p></p>
-HTML-CALC-NOT: </div>
-HTML-CALC-NOT: <h3>Parameters</h3>
-HTML-CALC-NOT: <div>
-HTML-CALC-NOT: <b>a</b> <div>
-HTML-CALC-NOT: <p> First integer.</p>
-HTML-CALC-NOT: </div>
-HTML-CALC-NOT: <div>
-HTML-CALC-NOT: <p></p>
-HTML-CALC-NOT: </div>
-HTML-CALC-NOT: </div>
-HTML-CALC-NOT: <div>
-HTML-CALC-NOT: <b>b</b> <div>
-HTML-CALC-NOT: <p> Second integer.</p>
-HTML-CALC-NOT: </div>
-HTML-CALC-NOT: <div>
-HTML-CALC-NOT: <p></p>
-HTML-CALC-NOT: </div>
-HTML-CALC-NOT: </div>
+HTML-CALC: </div>
+HTML-CALC: <h3>Parameters</h3>
+HTML-CALC: <div>
+HTML-CALC: <b>a</b> <div>
+HTML-CALC: <p> First integer.</p>
+HTML-CALC: </div>
+HTML-CALC: <div>
+HTML-CALC: <p></p>
+HTML-CALC: </div>
+HTML-CALC: </div>
+HTML-CALC: <div>
+HTML-CALC: <b>b</b> <div>
+HTML-CALC: <p> Second integer.</p>
+HTML-CALC: </div>
+HTML-CALC: <div>
+HTML-CALC: <p></p>
+HTML-CALC: </div>
+HTML-CALC: </div>
HTML-CALC: </div>
HTML-CALC: </div>
HTML-CALC: </div>
@@ -353,23 +353,23 @@ HTML-CALC: <p></p>
HTML-CALC: </div>
HTML-CALC: <div>
HTML-CALC: <p></p>
-HTML-CALC-NOT: </div>
-HTML-CALC-NOT: <h3>Parameters</h3>
-HTML-CALC-NOT: <div>
-HTML-CALC-NOT: <b>a</b> <div>
-HTML-CALC-NOT: <p> First integer.</p>
-HTML-CALC-NOT: </div>
-HTML-CALC-NOT: <div>
-HTML-CALC-NOT: <p></p>
-HTML-CALC-NOT: </div>
-HTML-CALC-NOT: </div>
-HTML-CALC-NOT: <div>
-HTML-CALC-NOT: <b>b</b> <div>
-HTML-CALC-NOT: <p> Second integer.</p>
-HTML-CALC-NOT: </div>
-HTML-CALC-NOT: <div>
-HTML-CALC-NOT: <p></p>
-HTML-CALC-NOT: </div>
+HTML-CALC: </div>
+HTML-CALC: <h3>Parameters</h3>
+HTML-CALC: <div>
+HTML-CALC: <b>a</b> <div>
+HTML-CALC: <p> First integer.</p>
+HTML-CALC: </div>
+HTML-CALC: <div>
+HTML-CALC: <p></p>
+HTML-CALC: </div>
+HTML-CALC: </div>
+HTML-CALC: <div>
+HTML-CALC: <b>b</b> <div>
+HTML-CALC: <p> Second integer.</p>
+HTML-CALC: </div>
+HTML-CALC: <div>
+HTML-CALC: <p></p>
+HTML-CALC: </div>
HTML-CALC: </div>
HTML-CALC: </div>
HTML-CALC: </div>
@@ -390,23 +390,23 @@ HTML-CALC: <p></p>
HTML-CALC: </div>
HTML-CALC: <div>
HTML-CALC: <p></p>
-HTML-CALC-NOT: </div>
-HTML-CALC-NOT: <h3>Parameters</h3>
-HTML-CALC-NOT: <div>
-HTML-CALC-NOT: <b>a</b> <div>
-HTML-CALC-NOT: <p> First integer.</p>
-HTML-CALC-NOT: </div>
-HTML-CALC-NOT: <div>
-HTML-CALC-NOT: <p></p>
-HTML-CALC-NOT: </div>
-HTML-CALC-NOT: </div>
-HTML-CALC-NOT: <div>
-HTML-CALC-NOT: <b>b</b> <div>
-HTML-CALC-NOT: <p> Second integer.</p>
-HTML-CALC-NOT: </div>
-HTML-CALC-NOT: <div>
-HTML-CALC-NOT: <p></p>
-HTML-CALC-NOT: </div>
+HTML-CALC: </div>
+HTML-CALC: <h3>Parameters</h3>
+HTML-CALC: <div>
+HTML-CALC: <b>a</b> <div>
+HTML-CALC: <p> First integer.</p>
+HTML-CALC: </div>
+HTML-CALC: <div>
+HTML-CALC: <p></p>
+HTML-CALC: </div>
+HTML-CALC: </div>
+HTML-CALC: <div>
+HTML-CALC: <b>b</b> <div>
+HTML-CALC: <p> Second integer.</p>
+HTML-CALC: </div>
+HTML-CALC: <div>
+HTML-CALC: <p></p>
+HTML-CALC: </div>
HTML-CALC: </div>
HTML-CALC: </div>
HTML-CALC: </div>
@@ -506,20 +506,20 @@ HTML-RECTANGLE: <p></p>
HTML-RECTANGLE: </div>
HTML-RECTANGLE: <div>
HTML-RECTANGLE: <p></p>
-HTML-RECTANGLE-NOT: </div>
-HTML-RECTANGLE-NOT: <h3>Parameters</h3>
-HTML-RECTANGLE-NOT: <div>
-HTML-RECTANGLE-NOT: <b>width</b> <div>
-HTML-RECTANGLE-NOT: <p> Width of the rectangle.</p>
-HTML-RECTANGLE-NOT: </div>
-HTML-RECTANGLE-NOT: <div>
-HTML-RECTANGLE-NOT: <p></p>
-HTML-RECTANGLE-NOT: </div>
-HTML-RECTANGLE-NOT: </div>
-HTML-RECTANGLE-NOT: <div>
-HTML-RECTANGLE-NOT: <b>height</b> <div>
-HTML-RECTANGLE-NOT: <p> Height of the rectangle.</p>
-HTML-RECTANGLE-NOT: </div>
+HTML-RECTANGLE: </div>
+HTML-RECTANGLE: <h3>Parameters</h3>
+HTML-RECTANGLE: <div>
+HTML-RECTANGLE: <b>width</b> <div>
+HTML-RECTANGLE: <p> Width of the rectangle.</p>
+HTML-RECTANGLE: </div>
+HTML-RECTANGLE: <div>
+HTML-RECTANGLE: <p></p>
+HTML-RECTANGLE: </div>
+HTML-RECTANGLE: </div>
+HTML-RECTANGLE: <div>
+HTML-RECTANGLE: <b>height</b> <div>
+HTML-RECTANGLE: <p> Height of the rectangle.</p>
+HTML-RECTANGLE: </div>
HTML-RECTANGLE: </div>
HTML-RECTANGLE: </div>
HTML-RECTANGLE: </div>
@@ -659,12 +659,12 @@ HTML-CIRCLE: <p></p>
HTML-CIRCLE: </div>
HTML-CIRCLE: <div>
HTML-CIRCLE: <p></p>
-HTML-CIRCLE-NOT: </div>
-HTML-CIRCLE-NOT: <h3>Parameters</h3>
-HTML-CIRCLE-NOT: <div>
-HTML-CIRCLE-NOT: <b>radius</b> <div>
-HTML-CIRCLE-NOT: <p> Radius of the circle.</p>
-HTML-CIRCLE-NOT: </div>
+HTML-CIRCLE: </div>
+HTML-CIRCLE: <h3>Parameters</h3>
+HTML-CIRCLE: <div>
+HTML-CIRCLE: <b>radius</b> <div>
+HTML-CIRCLE: <p> Radius of the circle.</p>
+HTML-CIRCLE: </div>
HTML-CIRCLE: </div>
HTML-CIRCLE: </div>
HTML-CIRCLE: </div>
More information about the llvm-branch-commits
mailing list