github-actions[bot] wrote: <!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning: <details> <summary> You can test this locally with the following command: </summary> ``````````bash git-clang-format --diff 62ae01201fc7185aca61d040c4f2df5303bae0ad 8d141ba80297ce024b0144f2522f7d662bf36568 --extensions cpp,h -- clang-tools-extra/clang-doc/HTMLMustacheGenerator.cpp llvm/include/llvm/Support/Mustache.h llvm/lib/Support/Mustache.cpp llvm/unittests/Support/MustacheTest.cpp clang-tools-extra/clang-doc/Generators.cpp clang-tools-extra/clang-doc/HTMLGenerator.cpp clang-tools-extra/clang-doc/Representation.h clang-tools-extra/clang-doc/tool/ClangDocMain.cpp clang-tools-extra/test/clang-doc/Inputs/basic-project/include/Shape.h `````````` </details> <details> <summary> View the diff from clang-format here. </summary> ``````````diff diff --git a/clang-tools-extra/clang-doc/HTMLGenerator.cpp b/clang-tools-extra/clang-doc/HTMLGenerator.cpp index ed65ac9651..e3532559a3 100644 --- a/clang-tools-extra/clang-doc/HTMLGenerator.cpp +++ b/clang-tools-extra/clang-doc/HTMLGenerator.cpp @@ -1133,8 +1133,7 @@ static llvm::Error genIndex(const ClangDocContext &CDCtx) { return llvm::Error::success(); } -static llvm::Error -copyFile(StringRef FilePath, StringRef OutDirectory) { +static llvm::Error copyFile(StringRef FilePath, StringRef OutDirectory) { llvm::SmallString<128> PathWrite; llvm::sys::path::native(OutDirectory, PathWrite); llvm::sys::path::append(PathWrite, llvm::sys::path::filename(FilePath)); diff --git a/clang-tools-extra/clang-doc/HTMLMustacheGenerator.cpp b/clang-tools-extra/clang-doc/HTMLMustacheGenerator.cpp index bfa563ebdc..e8f3d2b78e 100644 --- a/clang-tools-extra/clang-doc/HTMLMustacheGenerator.cpp +++ b/clang-tools-extra/clang-doc/HTMLMustacheGenerator.cpp @@ -17,7 +17,6 @@ using namespace llvm::mustache; namespace clang { namespace doc { - class MustacheHTMLGenerator : public Generator { public: static const char *Format; @@ -27,16 +26,15 @@ public: llvm::Error createResources(ClangDocContext &CDCtx) override; llvm::Error generateDocForInfo(Info *I, llvm::raw_ostream &OS, const ClangDocContext &CDCtx) override; - }; class MustacheTemplateFile : public Template { public: - static ErrorOr<std::unique_ptr<MustacheTemplateFile>> createMustacheFile - (StringRef FileName) { + static ErrorOr<std::unique_ptr<MustacheTemplateFile>> + createMustacheFile(StringRef FileName) { ErrorOr<std::unique_ptr<MemoryBuffer>> BufferOrError = MemoryBuffer::getFile(FileName); - + if (auto EC = BufferOrError.getError()) { return EC; } @@ -44,7 +42,7 @@ public: llvm::StringRef FileContent = Buffer->getBuffer(); return std::make_unique<MustacheTemplateFile>(FileContent); } - + Error registerPartialFile(StringRef Name, StringRef FileName) { ErrorOr<std::unique_ptr<MemoryBuffer>> BufferOrError = MemoryBuffer::getFile(FileName); @@ -64,9 +62,7 @@ static std::unique_ptr<MustacheTemplateFile> NamespaceTemplate = nullptr; static std::unique_ptr<MustacheTemplateFile> RecordTemplate = nullptr; - -llvm::Error -setupTemplateFiles(const clang::doc::ClangDocContext &CDCtx) { +llvm::Error setupTemplateFiles(const clang::doc::ClangDocContext &CDCtx) { auto TemplateFilePath = CDCtx.MustacheTemplates.lookup("template"); auto Template = MustacheTemplateFile::createMustacheFile(TemplateFilePath); if (auto EC = Template.getError()) { @@ -76,10 +72,9 @@ setupTemplateFiles(const clang::doc::ClangDocContext &CDCtx) { return llvm::Error::success(); } -llvm::Error -MustacheHTMLGenerator::generateDocs(llvm::StringRef RootDir, - llvm::StringMap<std::unique_ptr<doc::Info>> Infos, - const clang::doc::ClangDocContext &CDCtx) { +llvm::Error MustacheHTMLGenerator::generateDocs( + llvm::StringRef RootDir, llvm::StringMap<std::unique_ptr<doc::Info>> Infos, + const clang::doc::ClangDocContext &CDCtx) { if (auto Err = setupTemplateFiles(CDCtx)) { return Err; } @@ -89,7 +84,7 @@ MustacheHTMLGenerator::generateDocs(llvm::StringRef RootDir, llvm::StringMap<std::vector<doc::Info *>> FileToInfos; for (const auto &Group : Infos) { doc::Info *Info = Group.getValue().get(); - + llvm::SmallString<128> Path; llvm::sys::path::native(RootDir, Path); llvm::sys::path::append(Path, Info->getRelativeFilePath("")); @@ -105,7 +100,7 @@ MustacheHTMLGenerator::generateDocs(llvm::StringRef RootDir, llvm::sys::path::append(Path, Info->getFileBaseName() + ".html"); FileToInfos[Path].push_back(Info); } - + for (const auto &Group : FileToInfos) { std::error_code FileErr; llvm::raw_fd_ostream InfoOS(Group.getKey(), FileErr, @@ -123,7 +118,7 @@ MustacheHTMLGenerator::generateDocs(llvm::StringRef RootDir, return llvm::Error::success(); } -Value extractValue(const Location &L, +Value extractValue(const Location &L, std::optional<StringRef> RepositoryUrl = std::nullopt) { Object Obj = Object(); if (!L.IsFileInRootDir || !RepositoryUrl) { @@ -133,7 +128,7 @@ Value extractValue(const Location &L, SmallString<128> FileURL(*RepositoryUrl); llvm::sys::path::append(FileURL, llvm::sys::path::Style::posix, L.Filename); Obj.insert({"FileURL", FileURL}); - + return Obj; } @@ -147,7 +142,6 @@ Value extractValue(const Reference &I, StringRef CurrentDirectory) { return Obj; } - Value extractValue(const TypedefInfo &I) { // Not Supported return nullptr; @@ -156,17 +150,17 @@ Value extractValue(const TypedefInfo &I) { Value extractValue(const CommentInfo &I) { Object Obj = Object(); Value Child = Object(); - + if (I.Kind == "FullComment") { Value ChildArr = Array(); - for (const auto& C: I.Children) + for (const auto &C : I.Children) ChildArr.getAsArray()->emplace_back(extractValue(*C)); Child.getAsObject()->insert({"Children", ChildArr}); Obj.insert({"FullComment", Child}); } if (I.Kind == "ParagraphComment") { Value ChildArr = Array(); - for (const auto& C: I.Children) + for (const auto &C : I.Children) ChildArr.getAsArray()->emplace_back(extractValue(*C)); Child.getAsObject()->insert({"Children", ChildArr}); Obj.insert({"ParagraphComment", Child}); @@ -174,14 +168,14 @@ Value extractValue(const CommentInfo &I) { if (I.Kind == "BlockCommandComment") { Child.getAsObject()->insert({"Command", I.Name}); Value ChildArr = Array(); - for (const auto& C: I.Children) + for (const auto &C : I.Children) ChildArr.getAsArray()->emplace_back(extractValue(*C)); Child.getAsObject()->insert({"Children", ChildArr}); Obj.insert({"BlockCommandComment", Child}); } if (I.Kind == "TextComment") Obj.insert({"TextComment", I.Text}); - + return Obj; } @@ -192,16 +186,16 @@ Value extractValue(const FunctionInfo &I, StringRef ParentInfoDir, Obj.insert({"ID", llvm::toHex(llvm::toStringRef(I.USR))}); Obj.insert({"Access", getAccessSpelling(I.Access).str()}); Obj.insert({"ReturnType", extractValue(I.ReturnType.Type, ParentInfoDir)}); - + Value ParamArr = Array(); for (const auto &P : I.Params) { ParamArr.getAsArray()->emplace_back(extractValue(P.Type, ParentInfoDir)); } Obj.insert({"Params", ParamArr}); - + if (!I.Description.empty()) { Value ArrDesc = Array(); - for (const CommentInfo& Child : I.Description) + for (const CommentInfo &Child : I.Description) ArrDesc.getAsArray()->emplace_back(extractValue(Child)); Obj.insert({"FunctionComments", ArrDesc}); } @@ -209,8 +203,8 @@ Value extractValue(const FunctionInfo &I, StringRef ParentInfoDir, if (!CDCtx.RepositoryUrl) Obj.insert({"Location", extractValue(*I.DefLoc)}); else - Obj.insert({"Location", extractValue(*I.DefLoc, - StringRef{*CDCtx.RepositoryUrl})}); + Obj.insert({"Location", + extractValue(*I.DefLoc, StringRef{*CDCtx.RepositoryUrl})}); } return Obj; } @@ -225,41 +219,41 @@ Value extractValue(const EnumInfo &I, const ClangDocContext &CDCtx) { Obj.insert({"EnumName", EnumType}); Obj.insert({"HasComment", HasComment}); Obj.insert({"ID", llvm::toHex(llvm::toStringRef(I.USR))}); - + Value Arr = Array(); - for (const EnumValueInfo& M: I.Members) { + for (const EnumValueInfo &M : I.Members) { Value EnumValue = Object(); EnumValue.getAsObject()->insert({"Name", M.Name}); if (!M.ValueExpr.empty()) EnumValue.getAsObject()->insert({"ValueExpr", M.ValueExpr}); else EnumValue.getAsObject()->insert({"Value", M.Value}); - + if (!M.Description.empty()) { Value ArrDesc = Array(); - for (const CommentInfo& Child : M.Description) + for (const CommentInfo &Child : M.Description) ArrDesc.getAsArray()->emplace_back(extractValue(Child)); EnumValue.getAsObject()->insert({"EnumValueComments", ArrDesc}); } Arr.getAsArray()->emplace_back(EnumValue); } Obj.insert({"EnumValues", Arr}); - + if (!I.Description.empty()) { Value ArrDesc = Array(); - for (const CommentInfo& Child : I.Description) + for (const CommentInfo &Child : I.Description) ArrDesc.getAsArray()->emplace_back(extractValue(Child)); Obj.insert({"EnumComments", ArrDesc}); } - + if (I.DefLoc) { if (!CDCtx.RepositoryUrl) Obj.insert({"Location", extractValue(*I.DefLoc)}); else - Obj.insert({"Location", extractValue(*I.DefLoc, - StringRef{*CDCtx.RepositoryUrl})}); + Obj.insert({"Location", + extractValue(*I.DefLoc, StringRef{*CDCtx.RepositoryUrl})}); } - + return Obj; } @@ -269,59 +263,57 @@ Value extractValue(const NamespaceInfo &I, const ClangDocContext &CDCtx) { if (I.Name.str() == "") InfoTitle = "Global Namespace"; else - InfoTitle = ("namespace " + I.Name).str(); - + InfoTitle = ("namespace " + I.Name).str(); + StringRef BasePath = I.getRelativeFilePath(""); NamespaceValue.insert({"NamespaceTitle", InfoTitle}); NamespaceValue.insert({"NamespacePath", I.getRelativeFilePath("")}); - + if (!I.Description.empty()) { Value ArrDesc = Array(); - for (const CommentInfo& Child : I.Description) + for (const CommentInfo &Child : I.Description) ArrDesc.getAsArray()->emplace_back(extractValue(Child)); - NamespaceValue.insert({"NamespaceComments", ArrDesc }); + NamespaceValue.insert({"NamespaceComments", ArrDesc}); } Value ArrNamespace = Array(); - for (const Reference& Child : I.Children.Namespaces) + for (const Reference &Child : I.Children.Namespaces) ArrNamespace.getAsArray()->emplace_back(extractValue(Child, BasePath)); - + if (!ArrNamespace.getAsArray()->empty()) NamespaceValue.insert({"Namespace", Object{{"Links", ArrNamespace}}}); - + Value ArrRecord = Array(); - for (const Reference& Child : I.Children.Records) + for (const Reference &Child : I.Children.Records) ArrRecord.getAsArray()->emplace_back(extractValue(Child, BasePath)); - + if (!ArrRecord.getAsArray()->empty()) NamespaceValue.insert({"Record", Object{{"Links", ArrRecord}}}); - + Value ArrFunction = Array(); - for (const FunctionInfo& Child : I.Children.Functions) - ArrFunction.getAsArray()->emplace_back(extractValue(Child, BasePath, - CDCtx)); + for (const FunctionInfo &Child : I.Children.Functions) + ArrFunction.getAsArray()->emplace_back( + extractValue(Child, BasePath, CDCtx)); if (!ArrFunction.getAsArray()->empty()) NamespaceValue.insert({"Function", Object{{"Obj", ArrFunction}}}); - + Value ArrEnum = Array(); - for (const EnumInfo& Child : I.Children.Enums) + for (const EnumInfo &Child : I.Children.Enums) ArrEnum.getAsArray()->emplace_back(extractValue(Child, CDCtx)); - + if (!ArrEnum.getAsArray()->empty()) - NamespaceValue.insert({"Enums", Object{{"Obj", ArrEnum }}}); - + NamespaceValue.insert({"Enums", Object{{"Obj", ArrEnum}}}); + Value ArrTypedefs = Array(); - for (const TypedefInfo& Child : I.Children.Typedefs) + for (const TypedefInfo &Child : I.Children.Typedefs) ArrTypedefs.getAsArray()->emplace_back(extractValue(Child)); - + if (!ArrTypedefs.getAsArray()->empty()) - NamespaceValue.insert({"Typedefs", Object{{"Obj", ArrTypedefs }}}); - + NamespaceValue.insert({"Typedefs", Object{{"Obj", ArrTypedefs}}}); + return NamespaceValue; } - - llvm::Error MustacheHTMLGenerator::generateDocForInfo(Info *I, llvm::raw_ostream &OS, const ClangDocContext &CDCtx) { @@ -353,9 +345,8 @@ llvm::Error MustacheHTMLGenerator::createResources(ClangDocContext &CDCtx) { const char *MustacheHTMLGenerator::Format = "mhtml"; - -static GeneratorRegistry::Add<MustacheHTMLGenerator> MHTML(MustacheHTMLGenerator::Format, - "Generator for mustache HTML output."); +static GeneratorRegistry::Add<MustacheHTMLGenerator> + MHTML(MustacheHTMLGenerator::Format, "Generator for mustache HTML output."); // This anchor is used to force the linker to link in the generated object // file and thus register the generator. diff --git a/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp b/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp index eee8dbf093..8a2620c651 100644 --- a/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp +++ b/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp @@ -99,12 +99,7 @@ URL of repository that hosts code. Used for links to definition locations.)"), llvm::cl::cat(ClangDocCategory)); -enum OutputFormatTy { - md, - yaml, - html, - mhtml -}; +enum OutputFormatTy { md, yaml, html, mhtml }; static llvm::cl::opt<OutputFormatTy> FormatEnum("format", llvm::cl::desc("Format for outputted docs."), @@ -218,21 +213,21 @@ llvm::Error getMustacheHtmlFiles(const char *Argv0, << " falling back to default\n"; if (llvm::sys::fs::is_directory(std::string(UserAssetPath))) return getAssetFiles(CDCtx); - + void *MainAddr = (void *)(intptr_t)getExecutablePath; std::string ClangDocPath = getExecutablePath(Argv0, MainAddr); llvm::SmallString<128> NativeClangDocPath; llvm::sys::path::native(ClangDocPath, NativeClangDocPath); - + llvm::SmallString<128> AssetsPath; AssetsPath = llvm::sys::path::parent_path(NativeClangDocPath); llvm::sys::path::append(AssetsPath, "..", "share", "clang-doc"); - + llvm::SmallString<128> MustacheTemplate; llvm::sys::path::native(AssetsPath, MustacheTemplate); llvm::sys::path::append(MustacheTemplate, "template.mustache"); CDCtx.MustacheTemplates.insert({"template", MustacheTemplate.c_str()}); - + return llvm::Error::success(); } @@ -308,7 +303,7 @@ Example usage for a project using a compile commands database: return 1; } } - + if (Format == "mhtml") { if (auto Err = getMustacheHtmlFiles(argv[0], CDCtx)) { llvm::errs() << toString(std::move(Err)) << "\n"; `````````` </details> https://github.com/llvm/llvm-project/pull/108653 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits