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 ‘::’.

ParameterTypeDescription
textstr

Generated with Flude

Copyright © 2026