John Snow <[email protected]> writes:
> Finally, the core entry method for a qapi entity.
>
> Signed-off-by: John Snow <[email protected]>
> ---
> docs/sphinx/qapidoc.py | 21 +++++++++++++++++++++
> 1 file changed, 21 insertions(+)
>
> diff --git a/docs/sphinx/qapidoc.py b/docs/sphinx/qapidoc.py
> index 7308fa0a767..fb2ad7492ae 100644
> --- a/docs/sphinx/qapidoc.py
> +++ b/docs/sphinx/qapidoc.py
> @@ -78,6 +78,8 @@
>
>
> class Transmogrifier:
> + # pylint: disable=too-many-public-methods
> +
Tsk, tsk, tsk ... ;-P
> # Field names used for different entity types:
> field_types = {
> "enum": "value",
> @@ -368,6 +370,25 @@ def visit_freeform(self, doc: QAPIDoc) -> None:
> self.add_lines(text, info)
> self.ensure_blank_line()
>
> + def visit_entity(self, ent: QAPISchemaDefinition) -> None:
> + assert ent.info
> +
> + try:
> + self._curr_ent = ent
> +
> + # Squish structs and unions together into an "object" directive.
> + meta = ent.meta
> + if meta in ("struct", "union"):
> + meta = "object"
> +
> + # This line gets credited to the start of the /definition/.
> + self.add_line(f".. qapi:{meta}:: {ent.name}", ent.info)
> + with self.indented():
> + self.preamble(ent)
> + self.visit_sections(ent)
> + finally:
> + self._curr_ent = None
> +
>
> class QAPISchemaGenDepVisitor(QAPISchemaVisitor):
> """A QAPI schema visitor which adds Sphinx dependencies each module