docs: parser_yaml.py: add support for line numbers from the parser
Instead of printing line numbers from the temp converted ReST file, get them from the original source. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>pull/1354/merge
parent
ad06a878a3
commit
0b24dfdd12
|
|
@ -54,6 +54,8 @@ class YamlParser(Parser):
|
|||
|
||||
netlink_parser = YnlDocGenerator()
|
||||
|
||||
re_lineno = re.compile(r"\.\. LINENO ([0-9]+)$")
|
||||
|
||||
def rst_parse(self, inputstring, document, msg):
|
||||
"""
|
||||
Receives a ReST content that was previously converted by the
|
||||
|
|
@ -66,8 +68,14 @@ class YamlParser(Parser):
|
|||
|
||||
try:
|
||||
# Parse message with RSTParser
|
||||
for i, line in enumerate(msg.split('\n')):
|
||||
result.append(line, document.current_source, i)
|
||||
lineoffset = 0;
|
||||
for line in msg.split('\n'):
|
||||
match = self.re_lineno.match(line)
|
||||
if match:
|
||||
lineoffset = int(match.group(1))
|
||||
continue
|
||||
|
||||
result.append(line, document.current_source, lineoffset)
|
||||
|
||||
rst_parser = RSTParser()
|
||||
rst_parser.parse('\n'.join(result), document)
|
||||
|
|
|
|||
|
|
@ -158,9 +158,11 @@ class YnlDocGenerator:
|
|||
def parse_do(self, do_dict: Dict[str, Any], level: int = 0) -> str:
|
||||
"""Parse 'do' section and return a formatted string"""
|
||||
lines = []
|
||||
if LINE_STR in do_dict:
|
||||
lines.append(self.fmt.rst_lineno(do_dict[LINE_STR]))
|
||||
|
||||
for key in do_dict.keys():
|
||||
if key == LINE_STR:
|
||||
lines.append(self.fmt.rst_lineno(do_dict[key]))
|
||||
continue
|
||||
lines.append(self.fmt.rst_paragraph(self.fmt.bold(key), level + 1))
|
||||
if key in ['request', 'reply']:
|
||||
|
|
@ -187,13 +189,15 @@ class YnlDocGenerator:
|
|||
lines = []
|
||||
|
||||
for operation in operations:
|
||||
if LINE_STR in operation:
|
||||
lines.append(self.fmt.rst_lineno(operation[LINE_STR]))
|
||||
|
||||
lines.append(self.fmt.rst_section(namespace, 'operation',
|
||||
operation["name"]))
|
||||
lines.append(self.fmt.rst_paragraph(operation["doc"]) + "\n")
|
||||
|
||||
for key in operation.keys():
|
||||
if key == LINE_STR:
|
||||
lines.append(self.fmt.rst_lineno(operation[key]))
|
||||
continue
|
||||
|
||||
if key in preprocessed:
|
||||
|
|
@ -253,10 +257,12 @@ class YnlDocGenerator:
|
|||
lines = []
|
||||
|
||||
for definition in defs:
|
||||
if LINE_STR in definition:
|
||||
lines.append(self.fmt.rst_lineno(definition[LINE_STR]))
|
||||
|
||||
lines.append(self.fmt.rst_section(namespace, 'definition', definition["name"]))
|
||||
for k in definition.keys():
|
||||
if k == LINE_STR:
|
||||
lines.append(self.fmt.rst_lineno(definition[k]))
|
||||
continue
|
||||
if k in preprocessed + ignored:
|
||||
continue
|
||||
|
|
@ -284,6 +290,9 @@ class YnlDocGenerator:
|
|||
lines.append(self.fmt.rst_section(namespace, 'attribute-set',
|
||||
entry["name"]))
|
||||
for attr in entry["attributes"]:
|
||||
if LINE_STR in attr:
|
||||
lines.append(self.fmt.rst_lineno(attr[LINE_STR]))
|
||||
|
||||
type_ = attr.get("type")
|
||||
attr_line = attr["name"]
|
||||
if type_:
|
||||
|
|
@ -294,7 +303,6 @@ class YnlDocGenerator:
|
|||
|
||||
for k in attr.keys():
|
||||
if k == LINE_STR:
|
||||
lines.append(self.fmt.rst_lineno(attr[k]))
|
||||
continue
|
||||
if k in preprocessed + ignored:
|
||||
continue
|
||||
|
|
|
|||
Loading…
Reference in New Issue