Replaces ‘.’ with ‘::’ everywhere except inside a literal ‘…’.
Doxygen sometimes embeds a variadic template pack’s literal three-dot
ellipsis (e.g. “Args…”) directly inside a compound/nested-class name
for a template specialization. A blind text.replace(".", "::") turns
that ellipsis into “::::::” (DEL-B33 P0 – confirmed against real Doxygen
1.10.0 XML output, see tests/reference_corpus/cpp_edge_cases.md).
Splitting on “…” first, replacing only within each piece (which by
construction no longer contains “…”), then rejoining with the original
ellipsis preserves any variadic pack unchanged while still converting
every other ‘.’ to ‘::’.
Methods
_dots_to_scope
_dots_to_scope(text: str) -> str
Replaces ‘.’ with ‘::’ everywhere except inside a literal ‘…’.
Doxygen sometimes embeds a variadic template pack’s literal three-dot
ellipsis (e.g. “Args…”) directly inside a compound/nested-class name
for a template specialization. A blind text.replace(".", "::") turns
that ellipsis into “::::::” (DEL-B33 P0 – confirmed against real Doxygen
1.10.0 XML output, see tests/reference_corpus/cpp_edge_cases.md).
Splitting on “…” first, replacing only within each piece (which by
construction no longer contains “…”), then rejoining with the original
ellipsis preserves any variadic pack unchanged while still converting
every other ‘.’ to ‘::’.
| Parameter | Type | Description |
|---|---|---|
| text | str |
Generated with Flude
Copyright © 2026