diff mbox series

[11/27] docs/qapi-domain: add "Errors:" field lists

Message ID 20240419043820.178731-12-jsnow@redhat.com (mailing list archive)
State New
Headers show
Series Add qapi-domain Sphinx extension | expand

Commit Message

John Snow April 19, 2024, 4:37 a.m. UTC
``:error type: descr`` can now be used to document error conditions,
naming the type of error object and a description of when the error is
surfaced.

Like the previous Arguments patch, this patch does not apply any special
QAPI syntax highlighting or cross-referencing for the types, but this
can be adjusted in the future if desired.

(At present, I have no commits that add such highlighting. Sphinx also
does not appear to support Grouped fields with optional (or no)
parameters, so the ability to exclude error types is currently not
supported. If you omit the type, Sphinx treats it as a regular field
list and doesn't apply the special Grouping postprocessing to it.)

Signed-off-by: John Snow <jsnow@redhat.com>
---
 docs/qapi/index.rst        | 4 ++++
 docs/sphinx/qapi-domain.py | 6 ++++++
 2 files changed, 10 insertions(+)
diff mbox series

Patch

diff --git a/docs/qapi/index.rst b/docs/qapi/index.rst
index a570c37abb2..004d02e0437 100644
--- a/docs/qapi/index.rst
+++ b/docs/qapi/index.rst
@@ -98,6 +98,10 @@  Explicit cross-referencing syntax for QAPI modules is available with
    :feat unstable: More than unstable, this command doesn't even exist!
    :arg no-descr:
    :feat hallucination: This command is a figment of your imagination.
+   :error CommandNotFound: When you try to use this command, because it
+      isn't real.
+   :error GenericError: If the system decides it doesn't like the
+      argument values. It's very temperamental.
 
    Field lists can appear anywhere in the directive block, but any field
    list entries in the same list block that are recognized as special
diff --git a/docs/sphinx/qapi-domain.py b/docs/sphinx/qapi-domain.py
index c0dc6482204..1f0b168fa2c 100644
--- a/docs/sphinx/qapi-domain.py
+++ b/docs/sphinx/qapi-domain.py
@@ -273,6 +273,12 @@  class QAPICommand(QAPIObject):
                 names=("arg",),
                 can_collapse=True,
             ),
+            GroupedField(
+                "error",
+                label=_("Errors"),
+                names=("error",),
+                can_collapse=True,
+            ),
         ]
     )