Skip to content

Commit 1b79b58

Browse files
authored
feat: support formatting YAML-style metadata block with external formatter (#139)
1 parent cece7c3 commit 1b79b58

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

src/generation/generate.rs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1009,7 +1009,7 @@ fn gen_table_cell(table_cell: &TableCell, context: &mut Context) -> PrintItems {
10091009
gen_nodes(&table_cell.children, context)
10101010
}
10111011

1012-
fn gen_metadata_block(node: &MetadataBlock, _context: &mut Context) -> PrintItems {
1012+
fn gen_metadata_block(node: &MetadataBlock, context: &mut Context) -> PrintItems {
10131013
let mut items = PrintItems::new();
10141014

10151015
let delimiter = match node.kind {
@@ -1019,7 +1019,20 @@ fn gen_metadata_block(node: &MetadataBlock, _context: &mut Context) -> PrintItem
10191019

10201020
items.push_sc(&delimiter);
10211021
items.push_signal(Signal::NewLine);
1022-
items.extend(ir_helpers::gen_from_raw_string_trim_line_ends(node.text.trim_end()));
1022+
match node.kind {
1023+
MetadataBlockKind::YamlStyle => {
1024+
let text = context
1025+
.format_text("yaml", &node.text)
1026+
.ok()
1027+
.flatten()
1028+
.map(Cow::from)
1029+
.unwrap_or_else(|| Cow::from(&node.text));
1030+
items.extend(ir_helpers::gen_from_string_trim_line_ends(text.trim_end()));
1031+
}
1032+
MetadataBlockKind::PlusesStyle => {
1033+
items.extend(ir_helpers::gen_from_raw_string_trim_line_ends(node.text.trim_end()));
1034+
}
1035+
}
10231036
items.push_signal(Signal::NewLine);
10241037
items.push_sc(&delimiter);
10251038

0 commit comments

Comments
 (0)