From 2aca2d0894a4497e43e7fcc06e97851de7f133ad Mon Sep 17 00:00:00 2001 From: Boshen Date: Thu, 16 Nov 2023 23:21:26 +0800 Subject: [PATCH] feat(prettier): add `print_class` (#1355) --- crates/oxc_prettier/src/format/class.rs | 17 +++++++++++++++++ crates/oxc_prettier/src/format/mod.rs | 11 ++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 crates/oxc_prettier/src/format/class.rs diff --git a/crates/oxc_prettier/src/format/class.rs b/crates/oxc_prettier/src/format/class.rs new file mode 100644 index 000000000..bd4bd1683 --- /dev/null +++ b/crates/oxc_prettier/src/format/class.rs @@ -0,0 +1,17 @@ +#[allow(clippy::wildcard_imports)] +use oxc_ast::ast::*; + +use crate::{doc::Doc, ss, Format, Prettier}; + +impl<'a> Prettier<'a> { + pub(super) fn print_class(&mut self, class: &Class<'a>) -> Doc<'a> { + let mut parts = self.vec(); + parts.push(ss!("class ")); + if let Some(id) = &class.id { + parts.push(id.format(self)); + } + parts.push(ss!(" ")); + parts.push(class.body.format(self)); + Doc::Array(parts) + } +} diff --git a/crates/oxc_prettier/src/format/mod.rs b/crates/oxc_prettier/src/format/mod.rs index 7016dbfdb..a00972c6c 100644 --- a/crates/oxc_prettier/src/format/mod.rs +++ b/crates/oxc_prettier/src/format/mod.rs @@ -13,6 +13,7 @@ mod arrow_function; mod binaryish; mod block; mod call_expression; +mod class; mod function; mod function_parameters; mod module; @@ -1074,7 +1075,15 @@ impl<'a> Format<'a> for MetaProperty { impl<'a> Format<'a> for Class<'a> { fn format(&self, p: &mut Prettier<'a>) -> Doc<'a> { - Doc::Line + p.print_class(self) + } +} + +impl<'a> Format<'a> for ClassBody<'a> { + fn format(&self, p: &mut Prettier<'a>) -> Doc<'a> { + let mut parts = p.vec(); + parts.push(ss!("{}")); + Doc::Array(parts) } }