[clang-tools-extra] [clang-doc] [feat] add --repository-line-prefix argument (PR #131280)
Paul Kirth via cfe-commits
cfe-commits at lists.llvm.org
Sat Mar 22 13:28:14 PDT 2025
================
@@ -516,15 +518,16 @@ writeFileDefinition(const Location &L,
std::make_unique<TagNode>(HTMLTag::TAG_A, std::to_string(L.LineNumber));
// The links to a specific line in the source code use the github /
// googlesource notation so it won't work for all hosting pages.
- // FIXME: we probably should have a configuration setting for line number
- // rendering in the HTML. For example, GitHub uses #L22, while googlesource
- // uses #22 for line numbers.
- LocNumberNode->Attributes.emplace_back(
- "href", (FileURL + "#" + std::to_string(L.LineNumber)).str());
+ std::string LineAnchor =
+ formatv("#{0}{1}", RepositoryLinePrefix, L.LineNumber);
----------------
ilovepi wrote:
If you think its too complex then factor it into a helper, but we want to avoid all these heap allocations and copies. plus, I don't think its too complex to just write out the format string and add one additional string. In fact memory is still a big bottleneck for clang-doc. It's gotten much better, but its still a concern, and we need to be cognizant of that as we're modifying the codebase.
If we were really being serious about removing allocations, we'd make the interface for the attribute constructor take a Twine so we can have efficient concatenation. https://llvm.org/docs/ProgrammersManual.html#the-twine-class
https://github.com/llvm/llvm-project/pull/131280
More information about the cfe-commits
mailing list