Skip to content

Commit aa0a12b

Browse files
committed
RustDoc links: support [signal C] and [code] blocks without links
1 parent a09b53a commit aa0a12b

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

bindings_generator/src/class_docs.rs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,12 @@ impl GodotXmlDocs {
187187
let class_member_regex =
188188
Regex::new("\\[(member|method|constant) ([A-Za-z0-9_]+?)\\.([A-Za-z0-9_]+?)]").unwrap();
189189

190+
// Covers:
191+
// * [code]C[/code]
192+
// * [signal C]
193+
let no_link_regex =
194+
Regex::new("\\[code]([^.]+?)\\[/code]|\\[signal ([A-Za-z0-9_]+?)]").unwrap();
195+
190196
// URLs
191197
let godot_doc = url_regex.replace_all(&godot_doc, |c: &Captures| {
192198
let url = &c[1];
@@ -238,10 +244,13 @@ impl GodotXmlDocs {
238244
format!("[`{member}`][Self::{member}]", member = &c[2])
239245
});
240246

247+
// `member` style (no link)
248+
let godot_doc = no_link_regex.replace_all(&godot_doc, |c: &Captures| {
249+
format!("`{member}`", member = &c[1])
250+
});
251+
241252
// Note: maybe some of the following can be expressed as regex, but if text-replace does the job reliably enough, it's even faster
242253
let translated = godot_doc
243-
.replace("[code]", "`")
244-
.replace("[/code]", "`")
245254
.replace("[codeblock]", "```gdscript")
246255
.replace("[/codeblock]", "```")
247256
.replace("[b]", "**")

0 commit comments

Comments
 (0)