diff options
Diffstat (limited to 'sphinx/domains/cpp.py')
-rw-r--r-- | sphinx/domains/cpp.py | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/sphinx/domains/cpp.py b/sphinx/domains/cpp.py index 4dc8809ec..b801f4030 100644 --- a/sphinx/domains/cpp.py +++ b/sphinx/domains/cpp.py @@ -752,11 +752,17 @@ class ASTNestedName(ASTBase): names = self.names[:-1] if mode == 'lastIsName' else self.names # If lastIsName, then wrap all of the prefix in a desc_addname, # else append directly to signode. - # NOTE: Breathe relies on the prefix being in the desc_addname node, + # NOTE: Breathe previously relied on the prefix being in the desc_addname node, # so it can remove it in inner declarations. dest = signode if mode == 'lastIsName': dest = addnodes.desc_addname() + if self.rooted: + prefix += '::' + if mode == 'lastIsName' and len(names) == 0: + signode += nodes.Text('::') + else: + dest += nodes.Text('::') for i in range(len(names)): nne = names[i] template = self.templates[i] @@ -3722,8 +3728,8 @@ class LookupKey: class Symbol: debug_indent = 0 debug_indent_string = " " - debug_lookup = False - debug_show_tree = False + debug_lookup = False # overridden by the corresponding config value + debug_show_tree = False # overridden by the corresponding config value @staticmethod def debug_print(*args: Any) -> None: @@ -7383,9 +7389,18 @@ def setup(app: Sphinx) -> Dict[str, Any]: app.add_config_value("cpp_paren_attributes", [], 'env') app.add_post_transform(AliasTransform) + # debug stuff + app.add_config_value("cpp_debug_lookup", False, '') + app.add_config_value("cpp_debug_show_tree", False, '') + + def setDebugFlags(app): + Symbol.debug_lookup = app.config.cpp_debug_lookup + Symbol.debug_show_tree = app.config.cpp_debug_show_tree + app.connect("builder-inited", setDebugFlags) + return { 'version': 'builtin', - 'env_version': 2, + 'env_version': 3, 'parallel_read_safe': True, 'parallel_write_safe': True, } |