diff options
author | John Snow <jsnow@redhat.com> | 2025-03-13 00:43:06 -0400 |
---|---|---|
committer | Markus Armbruster <armbru@redhat.com> | 2025-03-14 07:31:57 +0100 |
commit | 7c7247b252dd8b3911b96451c0eaaebbc6ac0af0 (patch) | |
tree | 0800a368d80a6ca2b3d003286147aa4f3042ac43 /docs/sphinx | |
parent | 9ca404f0043d63043bfed3af8da3adedc062cb13 (diff) | |
download | qemu-7c7247b252dd8b3911b96451c0eaaebbc6ac0af0.zip qemu-7c7247b252dd8b3911b96451c0eaaebbc6ac0af0.tar.gz qemu-7c7247b252dd8b3911b96451c0eaaebbc6ac0af0.tar.bz2 |
docs/qapi-domain: add qapi:namespace directive
Add a new directive that marks the beginning of a QAPI "namespace", for
example; "QMP", "QGA" or "QSD". This directive will associate all
subsequent QAPI directives in a document with the specified
namespace. This does not change the visual display of any of the
definitions or index entries, but does change the "Fully Qualified Name"
inside the QAPI domain's object table. This allows for two different
"namespaces" to define entities with otherwise identical names -- which
will come in handy for documenting both QEMU QMP and the QEMU Storage
Daemon.
Signed-off-by: John Snow <jsnow@redhat.com>
Message-ID: <20250313044312.189276-6-jsnow@redhat.com>
Acked-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Diffstat (limited to 'docs/sphinx')
-rw-r--r-- | docs/sphinx/qapi_domain.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/docs/sphinx/qapi_domain.py b/docs/sphinx/qapi_domain.py index 6485c43..a204af9 100644 --- a/docs/sphinx/qapi_domain.py +++ b/docs/sphinx/qapi_domain.py @@ -38,6 +38,7 @@ from sphinx.domains import ( from sphinx.locale import _, __ from sphinx.roles import XRefRole from sphinx.util import logging +from sphinx.util.docutils import SphinxDirective from sphinx.util.nodes import make_id, make_refnode @@ -645,6 +646,17 @@ class QAPIModule(QAPIDescription): return ret +class QAPINamespace(SphinxDirective): + has_content = False + required_arguments = 1 + + def run(self) -> List[Node]: + namespace = self.arguments[0].strip() + self.env.ref_context["qapi:namespace"] = namespace + + return [] + + class QAPIIndex(Index): """ Index subclass to provide the QAPI definition index. @@ -726,6 +738,7 @@ class QAPIDomain(Domain): # Each of these provides a rST directive, # e.g. .. qapi:module:: block-core directives = { + "namespace": QAPINamespace, "module": QAPIModule, "command": QAPICommand, "event": QAPIEvent, |