Fix annotations for cpp domain

This commit is contained in:
Takeshi KOMIYA 2018-12-03 23:45:18 +09:00
parent 9e191ad6c1
commit 826301dbb1
3 changed files with 14 additions and 17 deletions

View File

@ -276,7 +276,7 @@ class Domain:
pass
def process_field_xref(self, pnode):
# type: (nodes.Node) -> None
# type: (addnodes.pending_xref) -> None
"""Process a pending xref created in a doc field.
For example, attach information about the current scope.
"""

View File

@ -2230,7 +2230,7 @@ class ASTNestedName(ASTBase):
# else append directly to signode.
# NOTE: Breathe relies on the prefix being in the desc_addname node,
# so it can remove it in inner declarations.
dest = signode # type: nodes.Element
dest = signode
if mode == 'lastIsName':
dest = addnodes.desc_addname()
for i in range(len(names)):
@ -6809,7 +6809,7 @@ class CPPDomain(Domain):
pass
def process_field_xref(self, pnode):
# type: (nodes.Node) -> None
# type: (addnodes.pending_xref) -> None
pnode.attributes.update(self.env.ref_context)
def merge_domaindata(self, docnames, otherdata):
@ -6835,8 +6835,7 @@ class CPPDomain(Domain):
def _resolve_xref_inner(self, env, fromdocname, builder, typ,
target, node, contnode, emitWarnings=True):
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, addnodes.pending_xref, nodes.Element, bool) -> nodes.Element # NOQA
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, addnodes.pending_xref, nodes.Element, bool) -> Tuple[nodes.Element, unicode] # NOQA
class Warner:
def warn(self, msg):
if emitWarnings:
@ -6973,23 +6972,21 @@ class CPPDomain(Domain):
declaration.get_newest_id(), contnode, displayName
), declaration.objectType
def resolve_xref(self, env, fromdocname, builder,
typ, target, node, contnode):
def resolve_xref(self, env, fromdocname, builder, typ, target, node, contnode):
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, addnodes.pending_xref, nodes.Element) -> nodes.Element # NOQA
return self._resolve_xref_inner(env, fromdocname, builder, typ,
target, node, contnode)[0]
def resolve_any_xref(self, env, fromdocname, builder, target,
node, contnode):
# type: (BuildEnvironment, unicode, Builder, unicode, nodes.pending_xref, nodes.Node) -> List[Tuple[unicode, nodes.Element]] # NOQA
node, objtype = self._resolve_xref_inner(env, fromdocname, builder,
'any', target, node, contnode,
emitWarnings=False)
if node:
def resolve_any_xref(self, env, fromdocname, builder, target, node, contnode):
# type: (BuildEnvironment, unicode, Builder, unicode, addnodes.pending_xref, nodes.Element) -> List[Tuple[unicode, nodes.Element]] # NOQA
retnode, objtype = self._resolve_xref_inner(env, fromdocname, builder,
'any', target, node, contnode,
emitWarnings=False)
if retnode:
if objtype == 'templateParam':
return [('cpp:templateParam', node)]
return [('cpp:templateParam', retnode)]
else:
return [('cpp:' + self.role_for_objtype(objtype), node)]
return [('cpp:' + self.role_for_objtype(objtype), retnode)]
return []
def get_objects(self):

View File

@ -80,7 +80,7 @@ class Field:
reftype=rolename, reftarget=target)
refnode += contnode or innernode(target, target)
if env:
env.domains[domain].process_field_xref(refnode)
env.get_domain(domain).process_field_xref(refnode)
return refnode
def make_xrefs(self,