[clang-doc] Add variables to the namespace HTML template (#175226)

This commit is contained in:
Erick Velez 2026-01-12 10:54:06 -08:00 committed by GitHub
parent 501416a755
commit 8042c93a58
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 50 additions and 5 deletions

View File

@ -755,8 +755,10 @@ static void serializeInfo(const NamespaceInfo &I, json::Object &Obj,
Obj["HasConcepts"] = true;
}
if (!I.Children.Variables.empty())
if (!I.Children.Variables.empty()) {
serializeArray(I.Children.Variables, Obj, "Variables", SerializeInfo);
Obj["HasVariables"] = true;
}
serializeCommonChildren(I.Children, Obj, RepositoryUrl, RepositoryLinePrefix);
}

View File

@ -113,6 +113,22 @@
</details>
</li>
{{/HasTypedefs}}
{{#HasVariables}}
<li>
<details open>
<summary class="sidebar-section">
<a class="sidebar-item" href="#Variables">Variables</a>
</summary>
<ul>
{{#Variables}}
<li class="sidebar-item-container">
<a class="sidebar-item" href="#{{USR}}">{{Name}}</a>
</li>
{{/Variables}}
</ul>
</details>
</li>
{{/HasVariables}}
</ul>
</div>
<div class="resizer" id="resizer"></div>
@ -193,6 +209,21 @@
{{/Typedefs}}
</section>
{{/HasTypedefs}}
{{#HasVariables}}
<section id="Variables" class="section-container">
<h2>Variables</h2>
<div>
{{#Variables}}
<div id="{{USR}}" class="delimiter-container">
<pre><code class="language-cpp code-clang-doc" >{{#IsStatic}}static {{/IsStatic}}{{Type.QualName}} {{Name}}</code></pre>
{{#Location}}
<p>Defined at line {{LineNumber}} of file {{^FileURL}}{{Filename}}{{/FileURL}}{{#FileURL}}<a href="{{FileURL}}">{{Filename}}</a>{{/FileURL}}</p>
{{/Location}}
</div>
{{/Variables}}
</div>
</section>
{{/HasVariables}}
</div>
</div>
</main>

View File

@ -1,6 +1,7 @@
// RUN: rm -rf %t && mkdir -p %t
// RUN: clang-doc --output=%t --format=json --executor=standalone %s
// RUN: clang-doc --output=%t --format=html --executor=standalone %s
// RUN: FileCheck %s < %t/json/GlobalNamespace/index.json
// RUN: FileCheck %s < %t/html/GlobalNamespace/index.html -check-prefix=HTML-CHECK
class MyClass {};
@ -27,7 +28,7 @@ typedef int MyTypedef;
// CHECK-NEXT: "InfoType": "enum",
// CHECK-NEXT: "Location": {
// CHECK-NEXT: "Filename": "{{.*}}namespace.cpp",
// CHECK-NEXT: "LineNumber": 14
// CHECK-NEXT: "LineNumber": 15
// CHECK-NEXT: },
// CHECK-NEXT: "Members": [
// CHECK-NEXT: {
@ -81,6 +82,7 @@ typedef int MyTypedef;
// CHECK-NEXT: "HasNamespaces": true,
// CHECK-NEXT: "HasRecords": true,
// CHECK-NEXT: "HasTypedefs": true,
// CHECK-NEXT: "HasVariables": true,
// CHECK-NEXT: "InfoType": "namespace",
// CHECK-NEXT: "Name": "Global Namespace",
// CHECK-NEXT: "Namespaces": [
@ -108,7 +110,7 @@ typedef int MyTypedef;
// CHECK-NEXT: "IsUsing": false,
// CHECK-NEXT: "Location": {
// CHECK-NEXT: "Filename": "{{.*}}namespace.cpp",
// CHECK-NEXT: "LineNumber": 20
// CHECK-NEXT: "LineNumber": 21
// CHECK-NEXT: },
// CHECK-NEXT: "Name": "MyTypedef",
// CHECK-NEXT: "TypeDeclaration": "",
@ -130,7 +132,7 @@ typedef int MyTypedef;
// CHECK-NEXT: "IsStatic": true,
// CHECK-NEXT: "Location": {
// CHECK-NEXT: "Filename": "{{.*}}namespace.cpp",
// CHECK-NEXT: "LineNumber": 12
// CHECK-NEXT: "LineNumber": 13
// CHECK-NEXT: },
// CHECK-NEXT: "Name": "Global",
// CHECK-NEXT: "Type": {
@ -144,3 +146,13 @@ typedef int MyTypedef;
// CHECK-NEXT: }
// CHECK-NEXT: ]
// CHECK-NEXT: }
// HTML-CHECK: <section id="Variables" class="section-container">
// HTML-CHECK-NEXT: <h2>Variables</h2>
// HTML-CHECK-NEXT: <div>
// HTML-CHECK-NEXT: <div id="{{([0-9A-F]{40})}}" class="delimiter-container">
// HTML-CHECK-NEXT: <pre><code class="language-cpp code-clang-doc" >static int Global</code></pre>
// HTML-CHECK-NEXT: <p>Defined at line 13 of file {{.*}}namespace.cpp</p>
// HTML-CHECK-NEXT: </div>
// HTML-CHECK-NEXT: </div>
// HTML-CHECK-NEXT: </section>