[clang-tools-extra] [clang-doc] Add helpers for Template config (PR #138062)
Erick Velez via cfe-commits
cfe-commits at lists.llvm.org
Fri May 16 23:00:31 PDT 2025
================
@@ -74,7 +75,51 @@ static std::unique_ptr<MustacheTemplateFile> NamespaceTemplate = nullptr;
static std::unique_ptr<MustacheTemplateFile> RecordTemplate = nullptr;
+static Error
+setupTemplate(std::unique_ptr<MustacheTemplateFile> &Template,
+ StringRef TemplatePath,
+ std::vector<std::pair<StringRef, StringRef>> Partials) {
+ auto T = MustacheTemplateFile::createMustacheFile(TemplatePath);
+ if (Error Err = T.takeError())
+ return Err;
+ Template = std::move(T.get());
+ for (const auto [Name, FileName] : Partials) {
+ if (auto Err = Template->registerPartialFile(Name, FileName))
+ return Err;
+ }
+ return Error::success();
+}
+
static Error setupTemplateFiles(const clang::doc::ClangDocContext &CDCtx) {
+ // Template files need to use the native path when they're opened,
+ // but have to be used in Posix style when used in HTML.
+ auto ConvertToNative = [](std::string &&Path) -> std::string {
+ SmallString<128> PathBuf(Path);
+ llvm::sys::path::native(PathBuf);
+ return PathBuf.str().str();
+ };
+
+ std::string NamespaceFilePath =
+ ConvertToNative(CDCtx.MustacheTemplates.lookup("namespace-template"));
+ std::string ClassFilePath =
+ ConvertToNative(CDCtx.MustacheTemplates.lookup("class-template"));
+ std::string CommentFilePath =
----------------
evelez7 wrote:
possible mega-nit: This is also referred to as `CommentTemplate` in Utils.cpp but its key is plural ("comments-template"). Then the first type is plural below in the pair ("Comments"). It's the only one like this.
https://github.com/llvm/llvm-project/pull/138062
More information about the cfe-commits
mailing list