Skip to content

Commit 322a188

Browse files
committed
[clang-doc] make a helper function for creating file definition
1 parent 91d9bcd commit 322a188

File tree

2 files changed

+24
-12
lines changed

2 files changed

+24
-12
lines changed

clang-tools-extra/clang-doc/HTMLGenerator.cpp

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -530,6 +530,13 @@ writeFileDefinition(const ClangDocContext &CDCtx, const Location &L) {
530530
return Node;
531531
}
532532

533+
static void createFileDefinition(std::vector<std::unique_ptr<TagNode>> &Out,
534+
const ClangDocContext &CDCtx,
535+
const std::optional<Location> &DefLoc) {
536+
if (DefLoc)
537+
Out.emplace_back(writeFileDefinition(CDCtx, *DefLoc));
538+
}
539+
533540
static std::vector<std::unique_ptr<TagNode>>
534541
genHTML(const Index &Index, StringRef InfoPath, bool IsOutermostList);
535542

@@ -749,8 +756,7 @@ genHTML(const EnumInfo &I, const ClangDocContext &CDCtx) {
749756

750757
Out.emplace_back(std::move(Table));
751758

752-
if (I.DefLoc)
753-
Out.emplace_back(writeFileDefinition(CDCtx, *I.DefLoc));
759+
createFileDefinition(Out, CDCtx, I.DefLoc);
754760

755761
std::string Description;
756762
if (!I.Description.empty())
@@ -793,8 +799,7 @@ genHTML(const FunctionInfo &I, const ClangDocContext &CDCtx,
793799
}
794800
FunctionHeader->Children.emplace_back(std::make_unique<TextNode>(")"));
795801

796-
if (I.DefLoc)
797-
Out.emplace_back(writeFileDefinition(CDCtx, *I.DefLoc));
802+
createFileDefinition(Out, CDCtx, I.DefLoc);
798803

799804
std::string Description;
800805
if (!I.Description.empty())
@@ -855,8 +860,7 @@ genHTML(const RecordInfo &I, Index &InfoIndex, const ClangDocContext &CDCtx,
855860
InfoTitle = (getTagType(I.TagType) + " " + I.Name).str();
856861
Out.emplace_back(std::make_unique<TagNode>(HTMLTag::TAG_H1, InfoTitle));
857862

858-
if (I.DefLoc)
859-
Out.emplace_back(writeFileDefinition(CDCtx, *I.DefLoc));
863+
createFileDefinition(Out, CDCtx, I.DefLoc);
860864

861865
std::string Description;
862866
if (!I.Description.empty())

clang-tools-extra/clang-doc/MDGenerator.cpp

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include "llvm/Support/FileSystem.h"
1313
#include "llvm/Support/FormatVariadic.h"
1414
#include "llvm/Support/Path.h"
15+
#include "llvm/Support/raw_ostream.h"
1516
#include <string>
1617

1718
using namespace llvm;
@@ -67,6 +68,13 @@ static void writeFileDefinition(const ClangDocContext &CDCtx, const Location &L,
6768
OS << "\n\n";
6869
}
6970

71+
static void createFileDefinition(llvm::raw_ostream &OS,
72+
const ClangDocContext &CDCtx,
73+
const std::optional<Location> &DefLoc) {
74+
if (DefLoc)
75+
writeFileDefinition(CDCtx, *DefLoc, OS);
76+
}
77+
7078
static void writeDescription(const CommentInfo &I, raw_ostream &OS) {
7179
if (I.Kind == "FullComment") {
7280
for (const auto &Child : I.Children)
@@ -143,8 +151,8 @@ static void genMarkdown(const ClangDocContext &CDCtx, const EnumInfo &I,
143151
for (const auto &N : I.Members)
144152
Members << "| " << N.Name << " |\n";
145153
writeLine(Members.str(), OS);
146-
if (I.DefLoc)
147-
writeFileDefinition(CDCtx, *I.DefLoc, OS);
154+
155+
createFileDefinition(OS, CDCtx, I.DefLoc);
148156

149157
for (const auto &C : I.Description)
150158
writeDescription(C, OS);
@@ -171,8 +179,8 @@ static void genMarkdown(const ClangDocContext &CDCtx, const FunctionInfo &I,
171179
writeLine(genItalic(I.ReturnType.Type.QualName + " " + I.Name + "(" +
172180
Stream.str() + ")"),
173181
OS);
174-
if (I.DefLoc)
175-
writeFileDefinition(CDCtx, *I.DefLoc, OS);
182+
183+
createFileDefinition(OS, CDCtx, I.DefLoc);
176184

177185
for (const auto &C : I.Description)
178186
writeDescription(C, OS);
@@ -231,8 +239,8 @@ static void genMarkdown(const ClangDocContext &CDCtx, const NamespaceInfo &I,
231239
static void genMarkdown(const ClangDocContext &CDCtx, const RecordInfo &I,
232240
llvm::raw_ostream &OS) {
233241
writeHeader(getTagType(I.TagType) + " " + I.Name, 1, OS);
234-
if (I.DefLoc)
235-
writeFileDefinition(CDCtx, *I.DefLoc, OS);
242+
243+
createFileDefinition(OS, CDCtx, I.DefLoc);
236244

237245
if (!I.Description.empty()) {
238246
for (const auto &C : I.Description)

0 commit comments

Comments
 (0)