Skip to content

Conversation

@evelez7
Copy link
Member

@evelez7 evelez7 commented Dec 1, 2025

No description provided.

Copy link
Member Author

evelez7 commented Dec 1, 2025

@llvmbot
Copy link
Member

llvmbot commented Dec 1, 2025

@llvm/pr-subscribers-clang-tools-extra

Author: Erick Velez (evelez7)

Changes

Full diff: https://github.com/llvm/llvm-project/pull/170195.diff

1 Files Affected:

  • (modified) clang-tools-extra/test/clang-doc/enum.cpp (+145)
diff --git a/clang-tools-extra/test/clang-doc/enum.cpp b/clang-tools-extra/test/clang-doc/enum.cpp
index b05d8e2029070..ec4ddcaa82b32 100644
--- a/clang-tools-extra/test/clang-doc/enum.cpp
+++ b/clang-tools-extra/test/clang-doc/enum.cpp
@@ -1,12 +1,19 @@
 // RUN: rm -rf %t && mkdir -p %t
 // RUN: clang-doc --format=html --doxygen --output=%t --executor=standalone %s
 // RUN: clang-doc --format=md --doxygen --output=%t --executor=standalone %s
+// RUN: clang-doc --format=mustache --doxygen --output=%t --executor=standalone %s
 // RUN: FileCheck %s < %t/GlobalNamespace/index.html --check-prefix=HTML-INDEX-LINE
 // RUN: FileCheck %s < %t/GlobalNamespace/index.html --check-prefix=HTML-INDEX
 // RUN: FileCheck %s < %t/GlobalNamespace/Animals.html --check-prefix=HTML-ANIMAL-LINE
 // RUN: FileCheck %s < %t/GlobalNamespace/Animals.html --check-prefix=HTML-ANIMAL
 // RUN: FileCheck %s < %t/Vehicles/index.html --check-prefix=HTML-VEHICLES-LINE
 // RUN: FileCheck %s < %t/Vehicles/index.html --check-prefix=HTML-VEHICLES
+// RUN: FileCheck %s < %t/html/GlobalNamespace/index.html --check-prefix=MUSTACHE-INDEX-LINE
+// RUN: FileCheck %s < %t/html/GlobalNamespace/index.html --check-prefix=MUSTACHE-INDEX
+// RUN: FileCheck %s < %t/html/GlobalNamespace/_ZTV7Animals.html --check-prefix=MUSTACHE-ANIMAL-LINE
+// RUN: FileCheck %s < %t/html/GlobalNamespace/_ZTV7Animals.html --check-prefix=MUSTACHE-ANIMAL
+// RUN: FileCheck %s < %t/html/Vehicles/index.html --check-prefix=MUSTACHE-VEHICLES-LINE
+// RUN: FileCheck %s < %t/html/Vehicles/index.html --check-prefix=MUSTACHE-VEHICLES
 // RUN: FileCheck %s < %t/GlobalNamespace/index.md --check-prefix=MD-INDEX-LINE
 // RUN: FileCheck %s < %t/GlobalNamespace/index.md --check-prefix=MD-INDEX
 // RUN: FileCheck %s < %t/GlobalNamespace/Animals.md --check-prefix=MD-ANIMAL-LINE
@@ -14,12 +21,15 @@
 // RUN: FileCheck %s < %t/Vehicles/index.md --check-prefix=MD-VEHICLES-LINE
 // RUN: FileCheck %s < %t/Vehicles/index.md --check-prefix=MD-VEHICLES
 
+// COM: FIXME: Add enum value comments to template
+
 /**
  * @brief For specifying RGB colors
  */
 enum Color {
   // MD-INDEX-LINE: *Defined at {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp#[[@LINE-1]]*
   // HTML-INDEX-LINE: <p>Defined at line [[@LINE-2]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p>
+  // MUSTACHE-INDEX-LINE-NOT: <p>Defined at line [[@LINE-2]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p>
   Red,   ///< Comment 1
   Green, ///< Comment 2
   Blue   ///< Comment 3
@@ -44,12 +54,41 @@ enum Color {
 // HTML-INDEX: <td>2</td>
 // HTML-INDEX: <p> Comment 3</p>
 
+// MUSTACHE-INDEX:     <div>
+// MUSTACHE-INDEX:         <pre>
+// MUSTACHE-INDEX:             <code class="language-cpp code-clang-doc">
+// MUSTACHE-INDEX: enum Color
+// MUSTACHE-INDEX:             </code>
+// MUSTACHE-INDEX:         </pre>
+// MUSTACHE-INDEX:     </div>
+// MUSTACHE-INDEX:     <table class="table-wrapper">
+// MUSTACHE-INDEX:         <tbody>
+// MUSTACHE-INDEX:             <tr>
+// MUSTACHE-INDEX:                 <th>Name</th>
+// MUSTACHE-INDEX:                 <th>Value</th>
+// MUSTACHE-INDEX:             </tr>
+// MUSTACHE-INDEX:                 <tr>
+// MUSTACHE-INDEX:                     <td>Red</td>
+// MUSTACHE-INDEX:                     <td>0</td>
+// MUSTACHE-INDEX:                 </tr>
+// MUSTACHE-INDEX:                 <tr>
+// MUSTACHE-INDEX:                     <td>Green</td>
+// MUSTACHE-INDEX:                     <td>1</td>
+// MUSTACHE-INDEX:                 </tr>
+// MUSTACHE-INDEX:                 <tr>
+// MUSTACHE-INDEX:                     <td>Blue</td>
+// MUSTACHE-INDEX:                     <td>2</td>
+// MUSTACHE-INDEX:                 </tr>
+// MUSTACHE-INDEX:         </tbody>
+// MUSTACHE-INDEX:     </table>
+
 /**
  * @brief Shape Types
  */
 enum class Shapes {
   // MD-INDEX-LINE: *Defined at {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp#[[@LINE-1]]*
   // HTML-INDEX-LINE: <p>Defined at line [[@LINE-2]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p>
+  // MUSTACHE-INDEX-LINE-NOT: <p>Defined at line [[@LINE-2]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p>
 
   /// Comment 1
   Circle,
@@ -76,9 +115,40 @@ enum class Shapes {
 // HTML-INDEX: <td>2</td>
 // HTML-INDEX: <p> Comment 3</p>
 
+// COM: FIXME: Serialize "enum class" in template
+// MUSTACHE-INDEX:     <div>
+// MUSTACHE-INDEX:         <pre>
+// MUSTACHE-INDEX:             <code class="language-cpp code-clang-doc">
+// MUSTACHE-INDEX: enum Shapes
+// MUSTACHE-INDEX:             </code>
+// MUSTACHE-INDEX:         </pre>
+// MUSTACHE-INDEX:     </div>
+// MUSTACHE-INDEX:     <table class="table-wrapper">
+// MUSTACHE-INDEX:         <tbody>
+// MUSTACHE-INDEX:             <tr>
+// MUSTACHE-INDEX:                 <th>Name</th>
+// MUSTACHE-INDEX:                 <th>Value</th>
+// MUSTACHE-INDEX:             </tr>
+// MUSTACHE-INDEX:                 <tr>
+// MUSTACHE-INDEX:                     <td>Circle</td>
+// MUSTACHE-INDEX:                     <td>0</td>
+// MUSTACHE-INDEX:                 </tr>
+// MUSTACHE-INDEX:                 <tr>
+// MUSTACHE-INDEX:                     <td>Rectangle</td>
+// MUSTACHE-INDEX:                     <td>1</td>
+// MUSTACHE-INDEX:                 </tr>
+// MUSTACHE-INDEX:                 <tr>
+// MUSTACHE-INDEX:                     <td>Triangle</td>
+// MUSTACHE-INDEX:                     <td>2</td>
+// MUSTACHE-INDEX:                 </tr>
+// MUSTACHE-INDEX:         </tbody>
+// MUSTACHE-INDEX:     </table>
+
+// COM: FIXME: Add enums declared inside of classes to class template
 class Animals {
   // MD-ANIMAL-LINE: *Defined at {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp#[[@LINE-1]]*
   // HTML-ANIMAL-LINE: <p>Defined at line [[@LINE-2]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p>
+  // MUSTACHE-ANIMAL-LINE: <p>Defined at line [[@LINE-3]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p>
 public:
   /**
    * @brief specify what animal the class is
@@ -86,6 +156,7 @@ class Animals {
   enum AnimalType {
     // MD-ANIMAL-LINE: *Defined at {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp#[[@LINE-1]]*
     // HTML-ANIMAL-LINE: <p>Defined at line [[@LINE-2]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p>
+    // MUSTACHE-ANIMAL-LINE-NOT: <p>Defined at line [[@LINE-2]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p>
     Dog,   ///< Man's best friend
     Cat,   ///< Man's other best friend
     Iguana ///< A lizard
@@ -105,6 +176,19 @@ class Animals {
 // HTML-ANIMAL: <td>2</td>
 // HTML-ANIMAL: <p> A lizard</p>
 
+// MUSTACHE-ANIMAL-NOT: <h1>class Animals</h1>
+// MUSTACHE-ANIMAL-NOT: <h2 id="Enums">Enums</h2>
+// MUSTACHE-ANIMAL-NOT: <th colspan="3">enum AnimalType</th>
+// MUSTACHE-ANIMAL-NOT: <td>Dog</td>
+// MUSTACHE-ANIMAL-NOT: <td>0</td>
+// MUSTACHE-ANIMAL-NOT: <p> Man&apos;s best friend</p>
+// MUSTACHE-ANIMAL-NOT: <td>Cat</td>
+// MUSTACHE-ANIMAL-NOT: <td>1</td>
+// MUSTACHE-ANIMAL-NOT: <p> Man&apos;s other best friend</p>
+// MUSTACHE-ANIMAL-NOT: <td>Iguana</td>
+// MUSTACHE-ANIMAL-NOT: <td>2</td>
+// MUSTACHE-ANIMAL-NOT: <p> A lizard</p>
+
 // MD-ANIMAL: # class Animals
 // MD-ANIMAL: ## Enums
 // MD-ANIMAL: | enum AnimalType |
@@ -121,6 +205,7 @@ namespace Vehicles {
 enum Car {
   // MD-VEHICLES-LINE: *Defined at {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp#[[@LINE-1]]*
   // HTML-VEHICLES-LINE: <p>Defined at line [[@LINE-2]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p>
+  // MUSTACHE-VEHICLES-LINE: Defined at line [[@LINE-3]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp
 
   Sedan,    ///< Comment 1
   SUV,      ///< Comment 2
@@ -154,6 +239,38 @@ enum Car {
 // HTML-VEHICLES: <td>3</td>
 // HTML-VEHICLES: <p> Comment 4</p>
 
+// MUSTACHE-VEHICLES:     <div>
+// MUSTACHE-VEHICLES:         <pre>
+// MUSTACHE-VEHICLES:             <code class="language-cpp code-clang-doc">
+// MUSTACHE-VEHICLES: enum Car
+// MUSTACHE-VEHICLES:             </code>
+// MUSTACHE-VEHICLES:         </pre>
+// MUSTACHE-VEHICLES:      </div>
+// MUSTACHE-VEHICLES:      <table class="table-wrapper">
+// MUSTACHE-VEHICLES:          <tbody>
+// MUSTACHE-VEHICLES:              <tr>
+// MUSTACHE-VEHICLES:                  <th>Name</th>
+// MUSTACHE-VEHICLES:                  <th>Value</th>
+// MUSTACHE-VEHICLES:              </tr>
+// MUSTACHE-VEHICLES:                  <tr>
+// MUSTACHE-VEHICLES:                      <td>Sedan</td>
+// MUSTACHE-VEHICLES:                      <td>0</td>
+// MUSTACHE-VEHICLES:                  </tr>
+// MUSTACHE-VEHICLES:                  <tr>
+// MUSTACHE-VEHICLES:                      <td>SUV</td>
+// MUSTACHE-VEHICLES:                      <td>1</td>
+// MUSTACHE-VEHICLES:                  </tr>
+// MUSTACHE-VEHICLES:                  <tr>
+// MUSTACHE-VEHICLES:                      <td>Pickup</td>
+// MUSTACHE-VEHICLES:                      <td>2</td>
+// MUSTACHE-VEHICLES:                  </tr>
+// MUSTACHE-VEHICLES:                  <tr>
+// MUSTACHE-VEHICLES:                      <td>Hatchback</td>
+// MUSTACHE-VEHICLES:                      <td>3</td>
+// MUSTACHE-VEHICLES:                  </tr>
+// MUSTACHE-VEHICLES:          </tbody>
+// MUSTACHE-VEHICLES:      </table>
+
 enum ColorUserSpecified {
   RedUserSpecified = 'A',
   GreenUserSpecified = 2,
@@ -173,3 +290,31 @@ enum ColorUserSpecified {
 // HTML-INDEX: <td>2</td>
 // HTML-INDEX: <td>BlueUserSpecified</td>
 // HTML-INDEX: <td>&apos;C&apos;</td>
+
+// MUSTACHE-INDEX:     <div>
+// MUSTACHE-INDEX:         <pre>
+// MUSTACHE-INDEX:             <code class="language-cpp code-clang-doc">
+// MUSTACHE-INDEX: enum ColorUserSpecified
+// MUSTACHE-INDEX:             </code>
+// MUSTACHE-INDEX:         </pre>
+// MUSTACHE-INDEX:     </div>
+// MUSTACHE-INDEX:     <table class="table-wrapper">
+// MUSTACHE-INDEX:         <tbody>
+// MUSTACHE-INDEX:             <tr>
+// MUSTACHE-INDEX:                 <th>Name</th>
+// MUSTACHE-INDEX:                 <th>Value</th>
+// MUSTACHE-INDEX:             </tr>
+// MUSTACHE-INDEX:                 <tr>
+// MUSTACHE-INDEX:                     <td>RedUserSpecified</td>
+// MUSTACHE-INDEX:                     <td>&#39;A&#39;</td>
+// MUSTACHE-INDEX:                 </tr>
+// MUSTACHE-INDEX:                 <tr>
+// MUSTACHE-INDEX:                     <td>GreenUserSpecified</td>
+// MUSTACHE-INDEX:                     <td>2</td>
+// MUSTACHE-INDEX:                 </tr>
+// MUSTACHE-INDEX:                 <tr>
+// MUSTACHE-INDEX:                     <td>BlueUserSpecified</td>
+// MUSTACHE-INDEX:                     <td>&#39;C&#39;</td>
+// MUSTACHE-INDEX:                 </tr>
+// MUSTACHE-INDEX:         </tbody>
+// MUSTACHE-INDEX:     </table>
\ No newline at end of file

Copy link
Member Author

evelez7 commented Dec 1, 2025

Test HTML: https://erickvelez.com/clang-doc-mustache-output/enums-precommit/GlobalNamespace/

Note that the indentation is fixed in the PR above this.

@evelez7 evelez7 force-pushed the users/evelez7/clang-doc-precommit-mustache-enum-tests branch from a8103e6 to 41503c8 Compare December 4, 2025 17:30
@evelez7 evelez7 merged commit 0378f0c into main Dec 4, 2025
5 of 9 checks passed
@evelez7 evelez7 deleted the users/evelez7/clang-doc-precommit-mustache-enum-tests branch December 4, 2025 17:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants