From: John Snow Date: Tue, 11 Mar 2025 03:42:13 +0000 (-0400) Subject: docs/qapi-domain: add "Arguments:" field lists X-Git-Tag: v10.0.0-rc0~11^2~48 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=618379701b4127877d858aa6a792c8a329ec48bc;p=thirdparty%2Fqemu.git 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 Message-ID: <20250311034303.75779-16-jsnow@redhat.com> Acked-by: Markus Armbruster Signed-off-by: Markus Armbruster --- diff --git a/docs/sphinx/qapi_domain.py b/docs/sphinx/qapi_domain.py index 222b420d2a..b4289db6d8 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):