Skip to content

Commit 75cf3ff

Browse files
committed
feat: allow multiple details lines
1 parent f45ddd7 commit 75cf3ff

File tree

3 files changed

+25
-10
lines changed

3 files changed

+25
-10
lines changed

arkdoc/generator/base.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,8 @@ def generate_sections(self, functions: List[spec.Function], with_hr: bool = Fals
8080
self.formatter.h4(self.formatter.plural("Parameter", len(func.desc.params))),
8181
self.formatter.ul(
8282
[
83-
f"{self.formatter.inline_code(p.name)}: {p.desc}" if p.desc else self.formatter.inline_code(p.name)
83+
f"{self.formatter.inline_code(p.name)}: {p.desc}" if p.desc else self.formatter.inline_code(
84+
p.name)
8485
for p in func.desc.params
8586
]
8687
),
@@ -120,7 +121,9 @@ def generate_sections(self, functions: List[spec.Function], with_hr: bool = Fals
120121
self.formatter.new_line(),
121122
maybe_deprecated_notice,
122123
maybe_changelists,
123-
self.formatter.div(self.formatter.b("Note"), ": ", func.desc.details) if func.desc.details else "",
124+
self.formatter.div(
125+
self.formatter.b("Note"), ": ",
126+
self.formatter.new_line().join(func.desc.details)) if func.desc.details else "",
124127
self.formatter.new_line(),
125128
authors,
126129
self.formatter.new_line(),

arkdoc/generator/utils.py

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
DEFAULT_KEYS = {
1212
"brief": "",
13-
"details": "",
13+
"details": [],
1414
"param": [],
1515
"author": "",
1616
"deprecated": "",
@@ -20,10 +20,22 @@
2020

2121
def extractor(data: Dict, doc: Documentation) -> Tuple[Dict, str]:
2222
in_code = False
23+
in_details = False
2324
code = []
25+
details = []
2426

2527
for comment in doc.comments:
26-
if not in_code:
28+
if in_code:
29+
if "=end" not in comment.value:
30+
code.append(comment.value)
31+
else:
32+
in_code = False
33+
elif in_details:
34+
if "=details-end" not in comment.value:
35+
details.append(comment.value)
36+
else:
37+
in_details = False
38+
else:
2739
for key in data:
2840
tag = f"@{key}"
2941

@@ -38,15 +50,15 @@ def extractor(data: Dict, doc: Documentation) -> Tuple[Dict, str]:
3850
else:
3951
if "=begin" in comment.value:
4052
in_code = True
41-
else:
42-
if "=end" not in comment.value:
43-
code.append(comment.value)
44-
else:
45-
in_code = False
53+
if "=details-begin" in comment.value:
54+
in_details = True
4655

4756
if code:
4857
margin = code[0].index("(")
4958
code = [line[margin:] for line in code]
59+
if details:
60+
details = [line.removeprefix("#").strip() for line in details]
61+
data["details"] += details
5062

5163
if "param" in data:
5264
for i, param in enumerate(data["param"]):

arkdoc/parser/tokenizer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ def cpp_tokenize(code: str) -> Generator[list[Token], Any, None]:
7070
* @brief test
7171
*/
7272
"""
73-
tok_regex = r"^ */\*\*\n( *\*( .*)\n)+"
73+
tok_regex = r"^ */\*\*\n( *\*( *.*)\n)+"
7474
line_num = 1
7575
line_start = 0
7676

0 commit comments

Comments
 (0)