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 pass
def process_field_xref(self, pnode): def process_field_xref(self, pnode):
# type: (nodes.Node) -> None # type: (addnodes.pending_xref) -> None
"""Process a pending xref created in a doc field. """Process a pending xref created in a doc field.
For example, attach information about the current scope. For example, attach information about the current scope.
""" """

View File

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

View File

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