summaryrefslogtreecommitdiff
path: root/sphinx/domains/cpp.py
diff options
context:
space:
mode:
Diffstat (limited to 'sphinx/domains/cpp.py')
-rw-r--r--sphinx/domains/cpp.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/sphinx/domains/cpp.py b/sphinx/domains/cpp.py
index 2fceeded3..b1e83a041 100644
--- a/sphinx/domains/cpp.py
+++ b/sphinx/domains/cpp.py
@@ -5032,6 +5032,20 @@ class CPPDomain(Domain):
newestId = symbol.declaration.get_newest_id()
yield (name, name, objectType, docname, newestId, 1)
+ def get_full_qualified_name(self, node):
+ # type: (nodes.Node) -> unicode
+ target = node.get('reftarget', None)
+ if target is None:
+ return None
+ parentKey = node.get("cpp:parent_key", None)
+ if parentKey is None:
+ return None
+
+ rootSymbol = self.data['root_symbol']
+ parentSymbol = rootSymbol.direct_lookup(parentKey)
+ parentName = parentSymbol.get_full_nested_name()
+ return '::'.join([text_type(parentName), target])
+
def setup(app):
# type: (Sphinx) -> Dict[unicode, Any]