summaryrefslogtreecommitdiff
path: root/sphinx
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2011-09-22 10:37:55 +0200
committerGeorg Brandl <georg@python.org>2011-09-22 10:37:55 +0200
commit7cabc9f2a989a78753f9ddcbfd941dd3fc45e106 (patch)
treea25714840b1493303fde36d63592e38c004db976 /sphinx
parent50876de9a9d375635cb6cbfbba969425ec037b94 (diff)
downloadsphinx-7cabc9f2a989a78753f9ddcbfd941dd3fc45e106.tar.gz
Closes #680: allow doc fields in cpp domain directives.
Diffstat (limited to 'sphinx')
-rw-r--r--sphinx/domains/cpp.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/sphinx/domains/cpp.py b/sphinx/domains/cpp.py
index 99622977..df90e451 100644
--- a/sphinx/domains/cpp.py
+++ b/sphinx/domains/cpp.py
@@ -21,6 +21,7 @@ from sphinx.domains import Domain, ObjType
from sphinx.directives import ObjectDescription
from sphinx.util.nodes import make_refnode
from sphinx.util.compat import Directive
+from sphinx.util.docfields import Field, GroupedField
_identifier_re = re.compile(r'(~?\b[a-zA-Z_][a-zA-Z0-9_]*)\b')
@@ -838,6 +839,17 @@ class DefinitionParser(object):
class CPPObject(ObjectDescription):
"""Description of a C++ language object."""
+ doc_field_types = [
+ GroupedField('parameter', label=l_('Parameters'),
+ names=('param', 'parameter', 'arg', 'argument'),
+ can_collapse=True),
+ GroupedField('exceptions', label=l_('Throws'), rolename='cpp:class',
+ names=('throws', 'throw', 'exception'),
+ can_collapse=True),
+ Field('returnvalue', label=l_('Returns'), has_arg=False,
+ names=('returns', 'return')),
+ ]
+
def attach_name(self, node, name):
owner, name = name.split_owner()
varname = unicode(name)
@@ -1128,7 +1140,7 @@ class CPPDomain(Domain):
node.line)
return None
- parent = node['cpp:parent']
+ parent = node.get('cpp:parent', None)
rv = _create_refnode(expr)
if rv is not None or parent is None: