Prefix classes with "class " and removed useless desc_type node.

This commit is contained in:
Armin Ronacher 2010-03-01 03:25:28 +01:00
parent 6f901f6c74
commit 7f5e4a271f

View File

@ -502,7 +502,7 @@ class CPPClassObject(CPPObject):
return parser.parse_typename() return parser.parse_typename()
def describe_signature(self, signode, typename): def describe_signature(self, signode, typename):
signode += addnodes.desc_type('', '') signode += addnodes.desc_annotation('class ', 'class ')
self.attach_type(signode, typename) self.attach_type(signode, typename)
return typename return typename
@ -522,15 +522,12 @@ class CPPTypedObject(CPPObject):
return _('%s (C++ member)') % name return _('%s (C++ member)') % name
elif self.objtype == 'type': elif self.objtype == 'type':
return _('%s (C++ type)') % name return _('%s (C++ type)') % name
elif self.objtype == 'var':
return _('%s (C++ variable)') % name
return '' return ''
def parse_definition(self, parser): def parse_definition(self, parser):
return parser.parse_variable() return parser.parse_variable()
def describe_signature(self, signode, (rv, var)): def describe_signature(self, signode, (rv, var)):
signode += addnodes.desc_type('', '')
self.attach_type(signode, rv) self.attach_type(signode, rv)
signode += nodes.Text(' ') signode += nodes.Text(' ')
self._attach_var(signode, var) self._attach_var(signode, var)
@ -578,7 +575,6 @@ class CPPFunctionObject(CPPTypedObject):
return parser.parse_function() return parser.parse_function()
def describe_signature(self, signode, (rv, func)): def describe_signature(self, signode, (rv, func)):
signode += addnodes.desc_type('', '')
self.attach_type(signode, rv) self.attach_type(signode, rv)
signode += nodes.Text(u' ') signode += nodes.Text(u' ')
self._attach_function(signode, func) self._attach_function(signode, func)
@ -593,24 +589,20 @@ class CPPDomain(Domain):
'class': ObjType(l_('C++ class'), 'class'), 'class': ObjType(l_('C++ class'), 'class'),
'function': ObjType(l_('C++ function'), 'func'), 'function': ObjType(l_('C++ function'), 'func'),
'member': ObjType(l_('C++ member'), 'member'), 'member': ObjType(l_('C++ member'), 'member'),
'type': ObjType(l_('C++ type'), 'type'), 'type': ObjType(l_('C++ type'), 'type')
'var': ObjType(l_('C++ variable'), 'data'),
} }
directives = { directives = {
'class': CPPClassObject, 'class': CPPClassObject,
'function': CPPFunctionObject, 'function': CPPFunctionObject,
'member': CPPTypedObject, 'member': CPPTypedObject,
'type': CPPTypedObject, 'type': CPPTypedObject
'var': CPPTypedObject,
} }
roles = { roles = {
'class': XRefRole(), 'class': XRefRole(),
'func' : XRefRole(fix_parens=True), 'func' : XRefRole(fix_parens=True),
'member': XRefRole(), 'member': XRefRole(),
'macro': XRefRole(), 'type': XRefRole()
'data': XRefRole(),
'type': XRefRole(),
} }
initial_data = { initial_data = {
'objects': {}, # fullname -> docname, objtype 'objects': {}, # fullname -> docname, objtype
@ -623,8 +615,8 @@ class CPPDomain(Domain):
def resolve_xref(self, env, fromdocname, builder, def resolve_xref(self, env, fromdocname, builder,
typ, target, node, contnode): typ, target, node, contnode):
# strip pointer asterisk # strip pointer and reference info
target = target.rstrip(' *') target = target.rstrip(' *&')
if target not in self.data['objects']: if target not in self.data['objects']:
return None return None
obj = self.data['objects'][target] obj = self.data['objects'][target]