mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-01 14:53:54 -06:00
docs/sphinx: create QAPI domain extension stub
A Sphinx domain is a collection of directive and role extensions meant to facilitate the documentation of a specific language. For instance, Sphinx ships with "python" and "cpp" domains. This patch introduces a stub for the "qapi" language domain. Please see https://www.sphinx-doc.org/en/master/usage/domains/index.html for more information. This stub doesn't really do anything yet, we'll get to it brick-by-brick in the forthcoming commits to keep the series breezy and the git history informative. Signed-off-by: John Snow <jsnow@redhat.com> Message-ID: <20250311034303.75779-4-jsnow@redhat.com> Acked-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
parent
825b96dbce
commit
ecf92e3618
2 changed files with 64 additions and 1 deletions
|
@ -60,7 +60,14 @@ needs_sphinx = '3.4.3'
|
||||||
# Add any Sphinx extension module names here, as strings. They can be
|
# Add any Sphinx extension module names here, as strings. They can be
|
||||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||||
# ones.
|
# ones.
|
||||||
extensions = ['kerneldoc', 'qmp_lexer', 'hxtool', 'depfile', 'qapidoc']
|
extensions = [
|
||||||
|
'depfile',
|
||||||
|
'hxtool',
|
||||||
|
'kerneldoc',
|
||||||
|
'qapi_domain',
|
||||||
|
'qapidoc',
|
||||||
|
'qmp_lexer',
|
||||||
|
]
|
||||||
|
|
||||||
if sphinx.version_info[:3] > (4, 0, 0):
|
if sphinx.version_info[:3] > (4, 0, 0):
|
||||||
tags.add('sphinx4')
|
tags.add('sphinx4')
|
||||||
|
|
56
docs/sphinx/qapi_domain.py
Normal file
56
docs/sphinx/qapi_domain.py
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
"""
|
||||||
|
QAPI domain extension.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from typing import (
|
||||||
|
TYPE_CHECKING,
|
||||||
|
AbstractSet,
|
||||||
|
Any,
|
||||||
|
Dict,
|
||||||
|
Tuple,
|
||||||
|
)
|
||||||
|
|
||||||
|
from sphinx.domains import Domain, ObjType
|
||||||
|
from sphinx.util import logging
|
||||||
|
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from sphinx.application import Sphinx
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
class QAPIDomain(Domain):
|
||||||
|
"""QAPI language domain."""
|
||||||
|
|
||||||
|
name = "qapi"
|
||||||
|
label = "QAPI"
|
||||||
|
|
||||||
|
object_types: Dict[str, ObjType] = {}
|
||||||
|
directives = {}
|
||||||
|
roles = {}
|
||||||
|
initial_data: Dict[str, Dict[str, Tuple[Any]]] = {}
|
||||||
|
indices = []
|
||||||
|
|
||||||
|
def merge_domaindata(
|
||||||
|
self, docnames: AbstractSet[str], otherdata: Dict[str, Any]
|
||||||
|
) -> None:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def resolve_any_xref(self, *args: Any, **kwargs: Any) -> Any:
|
||||||
|
# pylint: disable=unused-argument
|
||||||
|
return []
|
||||||
|
|
||||||
|
|
||||||
|
def setup(app: Sphinx) -> Dict[str, Any]:
|
||||||
|
app.setup_extension("sphinx.directives")
|
||||||
|
app.add_domain(QAPIDomain)
|
||||||
|
|
||||||
|
return {
|
||||||
|
"version": "1.0",
|
||||||
|
"env_version": 1,
|
||||||
|
"parallel_read_safe": True,
|
||||||
|
"parallel_write_safe": True,
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue