From cff04ed09cee0869a21548d8b94a8f09fffe7e8b Mon Sep 17 00:00:00 2001 From: Cameron Date: Sat, 18 Nov 2023 01:41:27 +0000 Subject: [PATCH] feat(prettier) print do while loop (#1394) --- crates/oxc_prettier/src/format/mod.rs | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/crates/oxc_prettier/src/format/mod.rs b/crates/oxc_prettier/src/format/mod.rs index 43eb9cf85..4759fa36a 100644 --- a/crates/oxc_prettier/src/format/mod.rs +++ b/crates/oxc_prettier/src/format/mod.rs @@ -254,7 +254,28 @@ impl<'a> Format<'a> for WhileStatement<'a> { impl<'a> Format<'a> for DoWhileStatement<'a> { fn format(&self, p: &mut Prettier<'a>) -> Doc<'a> { - Doc::Line + let mut parts = p.vec(); + + let clause = format!(p, self.body); + let clause = adjust_clause(p, &self.body, clause, false); + let do_body = group!(p, ss!("do"), clause); + + parts.push(do_body); + + if matches!(self.body, Statement::BlockStatement(_)) { + parts.push(ss!(" ")); + } else { + parts.push(hardline!()); + } + + parts.push(ss!("while (")); + parts.push(group!(p, indent!(p, softline!(), format!(p, self.test), softline!()))); + parts.push(ss!(")")); + if p.options.semi { + parts.push(ss!(";")); + } + + Doc::Array(parts) } }