@@ -740,8 +740,24 @@ def connect_member(self, member: 'QAPISchemaMember') -> None:
raise QAPISemError(member.info,
"%s '%s' lacks documentation"
% (member.role, member.name))
- self.args[member.name] = QAPIDoc.ArgSection(
- self.info, '@' + member.name, 'member')
+
+ # Insert stub documentation section for missing member docs.
+ section = QAPIDoc.ArgSection(
+ self.info, f"@{member.name}", "member")
+ self.args[member.name] = section
+
+ # Determine where to insert stub doc.
+ index = 0
+ for i, sect in enumerate(self.all_sections):
+ # insert after these:
+ if sect.kind in ('intro-paragraph', 'member'):
+ index = i + 1
+ # but before these:
+ elif sect.kind in ('tagged', 'feature', 'outro-paragraph'):
+ index = i
+ break
+ self.all_sections.insert(index, section)
+
self.args[member.name].connect(member)
def connect_feature(self, feature: 'QAPISchemaFeature') -> None:
This helps simplify the doc generator if it doesn't have to check for undocumented members. Signed-off-by: John Snow <jsnow@redhat.com> --- scripts/qapi/parser.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-)