aboutsummaryrefslogtreecommitdiff
path: root/docs/sphinx/qapi_domain.py
diff options
context:
space:
mode:
authorJohn Snow <jsnow@redhat.com>2025-03-10 23:42:13 -0400
committerMarkus Armbruster <armbru@redhat.com>2025-03-11 10:10:48 +0100
commit618379701b4127877d858aa6a792c8a329ec48bc (patch)
treea5e06193bfc827924e05bbabccba7ba5a6b3812c /docs/sphinx/qapi_domain.py
parent700d51a45c614068393f9754d3ef366e2c05a884 (diff)
downloadqemu-618379701b4127877d858aa6a792c8a329ec48bc.zip
qemu-618379701b4127877d858aa6a792c8a329ec48bc.tar.gz
qemu-618379701b4127877d858aa6a792c8a329ec48bc.tar.bz2
docs/qapi-domain: add "Arguments:" field lists
This adds special rendering for Sphinx's typed info field lists. This patch does not add any QAPI-aware markup, rendering, or cross-referencing for the type names, yet. That feature requires a subclass to TypedField which will happen in its own commit quite a bit later in this series; after all the basic fields and objects have been established first. The syntax for this field is: :arg type name: description description cont'd You can omit the type or the description. You should not omit the name; if you do so, it degenerates into a "normal field list" entry, and probably isn't what you want. Signed-off-by: John Snow <jsnow@redhat.com> Message-ID: <20250311034303.75779-16-jsnow@redhat.com> Acked-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
Diffstat (limited to 'docs/sphinx/qapi_domain.py')
-rw-r--r--docs/sphinx/qapi_domain.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/docs/sphinx/qapi_domain.py b/docs/sphinx/qapi_domain.py
index 222b420..b4289db 100644
--- a/docs/sphinx/qapi_domain.py
+++ b/docs/sphinx/qapi_domain.py
@@ -33,6 +33,7 @@ from sphinx.domains import (
from sphinx.locale import _, __
from sphinx.roles import XRefRole
from sphinx.util import logging
+from sphinx.util.docfields import TypedField
from sphinx.util.nodes import make_id, make_refnode
@@ -273,7 +274,18 @@ class QAPIObject(QAPIDescription):
class QAPICommand(QAPIObject):
"""Description of a QAPI Command."""
- # Nothing unique for now! Changed in later commits O:-)
+ doc_field_types = QAPIObject.doc_field_types.copy()
+ doc_field_types.extend(
+ [
+ # :arg TypeName ArgName: descr
+ TypedField(
+ "argument",
+ label=_("Arguments"),
+ names=("arg",),
+ can_collapse=False,
+ ),
+ ]
+ )
class QAPIModule(QAPIDescription):