Message ID | 20241213021827.2956769-10-jsnow@redhat.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | docs: add basic sphinx-domain rST generator to qapidoc | expand |
John Snow <jsnow@redhat.com> writes: > This is for the sake of the new rST generator (the "transmogrifier") so > we can advance multiple lines on occasion while keeping the > generated<-->source mappings accurate. > > next_line now simply takes an optional n parameter which chooses the > number of lines to advance. > > > RFC: Here's the exorbitant detail on why I want this: > > This is used mainly when converting section syntax in free-form > documentation to more traditional rST section header syntax, which > does not always line up 1:1 for line counts. > > For example: > > ``` > ## > # = Section <-- Info is pointing here, "L1" > # > # Lorem Ipsum > ## > ``` > > would be transformed to rST as: > > ``` > ======= <-- L1 > Section <-- L1 > ======= <-- L1 > <-- L2 > Lorem Ipsum <-- L3 > ``` I can't help to wonder... Could we simply use rST markup instead? "Later", "maybe later", or even "please ask me later" would be perfectly acceptable answers. > After consuming the single "Section" line from the source, we want to > advance the source pointer to the next non-empty line which requires > jumping by more than one line. > > Signed-off-by: John Snow <jsnow@redhat.com> > --- > scripts/qapi/source.py | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/scripts/qapi/source.py b/scripts/qapi/source.py > index 7b379fdc925..ffdc3f482ac 100644 > --- a/scripts/qapi/source.py > +++ b/scripts/qapi/source.py > @@ -47,9 +47,9 @@ def set_defn(self, meta: str, name: str) -> None: > self.defn_meta = meta > self.defn_name = name > > - def next_line(self: T) -> T: > + def next_line(self: T, n: int = 1) -> T: > info = copy.copy(self) > - info.line += 1 > + info.line += n > return info > > def loc(self) -> str: Assuming we need this: Reviewed-by: Markus Armbruster <armbru@redhat.com>
diff --git a/scripts/qapi/source.py b/scripts/qapi/source.py index 7b379fdc925..ffdc3f482ac 100644 --- a/scripts/qapi/source.py +++ b/scripts/qapi/source.py @@ -47,9 +47,9 @@ def set_defn(self, meta: str, name: str) -> None: self.defn_meta = meta self.defn_name = name - def next_line(self: T) -> T: + def next_line(self: T, n: int = 1) -> T: info = copy.copy(self) - info.line += 1 + info.line += n return info def loc(self) -> str:
This is for the sake of the new rST generator (the "transmogrifier") so we can advance multiple lines on occasion while keeping the generated<-->source mappings accurate. next_line now simply takes an optional n parameter which chooses the number of lines to advance. RFC: Here's the exorbitant detail on why I want this: This is used mainly when converting section syntax in free-form documentation to more traditional rST section header syntax, which does not always line up 1:1 for line counts. For example: ``` ## # = Section <-- Info is pointing here, "L1" # # Lorem Ipsum ## ``` would be transformed to rST as: ``` ======= <-- L1 Section <-- L1 ======= <-- L1 <-- L2 Lorem Ipsum <-- L3 ``` After consuming the single "Section" line from the source, we want to advance the source pointer to the next non-empty line which requires jumping by more than one line. Signed-off-by: John Snow <jsnow@redhat.com> --- scripts/qapi/source.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)