Skip to content

Commit 0419ced

Browse files
committed
Fixes in multi line description generation
1 parent 413829c commit 0419ced

File tree

2 files changed

+9
-10
lines changed

2 files changed

+9
-10
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
1111

1212
- Bug with `use_mask`
1313
- Correct derive for register (cluster) array (needs `svd-rs` 0.11.2)
14+
- New line separators are now rendered in enumerated values
15+
- Multi line field descriptions are now rendered correctly in write and read registers
1416

1517
### Added
1618

src/generate/register.rs

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -289,11 +289,8 @@ pub fn fields(
289289
let name_sc = Ident::new(&name.to_sanitized_snake_case(), span);
290290
let name_pc = name.to_sanitized_upper_case();
291291
let bits = Ident::new(if width == 1 { "bit" } else { "bits" }, span);
292-
let description = if let Some(d) = &f.description {
293-
util::respace(&util::escape_brackets(d))
294-
} else {
295-
"".to_owned()
296-
};
292+
let description_raw = f.description.as_ref().map(|s| s.as_str()).unwrap_or(""); // raw description, if absent using empty string
293+
let description = util::respace(&util::escape_brackets(description_raw));
297294

298295
let can_read = can_read
299296
&& (f.access != Some(Access::WriteOnly))
@@ -427,7 +424,7 @@ pub fn fields(
427424
Span::call_site(),
428425
);
429426
let doc = util::replace_suffix(
430-
&description_with_bits(&description, sub_offset, width),
427+
&description_with_bits(&description_raw, sub_offset, width),
431428
suffix,
432429
);
433430
r_impl_items.extend(quote! {
@@ -439,7 +436,7 @@ pub fn fields(
439436
});
440437
}
441438
} else {
442-
let doc = description_with_bits(&description, offset, width);
439+
let doc = description_with_bits(&description_raw, offset, width);
443440
r_impl_items.extend(quote! {
444441
#[doc = #doc]
445442
#inline
@@ -792,7 +789,7 @@ pub fn fields(
792789
Span::call_site(),
793790
);
794791
let doc = util::replace_suffix(
795-
&description_with_bits(&description, sub_offset, width),
792+
&description_with_bits(&description_raw, sub_offset, width),
796793
suffix,
797794
);
798795
let sub_offset = util::unsuffixed(sub_offset as u64);
@@ -815,7 +812,7 @@ pub fn fields(
815812
}
816813
}
817814
} else {
818-
let doc = description_with_bits(&description, offset, width);
815+
let doc = description_with_bits(&description_raw, offset, width);
819816
w_impl_items.extend(quote! {
820817
#[doc = #doc]
821818
#inline
@@ -935,7 +932,7 @@ fn add_from_variants(
935932

936933
let mut vars = TokenStream::new();
937934
for v in variants.iter().map(|v| {
938-
let desc = util::escape_brackets(&format!("{}: {}", v.value, v.doc));
935+
let desc = util::escape_brackets(&util::respace(&format!("{}: {}", v.value, v.doc)));
939936
let pcv = &v.pc;
940937
let pcval = &util::unsuffixed(v.value);
941938
quote! {

0 commit comments

Comments
 (0)