diff --git a/crates/biome_grit_formatter/src/grit/predicates/predicate_and.rs b/crates/biome_grit_formatter/src/grit/predicates/predicate_and.rs index 890c07c23a7c..8d297637f095 100644 --- a/crates/biome_grit_formatter/src/grit/predicates/predicate_and.rs +++ b/crates/biome_grit_formatter/src/grit/predicates/predicate_and.rs @@ -1,9 +1,28 @@ use crate::prelude::*; -use biome_grit_syntax::GritPredicateAnd; +use biome_formatter::write; +use biome_grit_syntax::{GritPredicateAnd, GritPredicateAndFields}; + #[derive(Debug, Clone, Default)] pub(crate) struct FormatGritPredicateAnd; impl FormatNodeRule for FormatGritPredicateAnd { fn fmt_fields(&self, node: &GritPredicateAnd, f: &mut GritFormatter) -> FormatResult<()> { - format_verbatim_node(node.syntax()).fmt(f) + let GritPredicateAndFields { + l_curly_token, + and_token, + predicates, + r_curly_token, + } = node.as_fields(); + write!( + f, + [ + l_curly_token.format(), + hard_line_break(), + and_token.format(), + hard_line_break(), + soft_block_indent(&predicates.format()), + hard_line_break(), + r_curly_token.format() + ] + ) } } diff --git a/crates/biome_grit_formatter/src/grit/predicates/predicate_assignment.rs b/crates/biome_grit_formatter/src/grit/predicates/predicate_assignment.rs index 8c23c6f779b9..a84b2d0f712b 100644 --- a/crates/biome_grit_formatter/src/grit/predicates/predicate_assignment.rs +++ b/crates/biome_grit_formatter/src/grit/predicates/predicate_assignment.rs @@ -1,6 +1,7 @@ use crate::prelude::*; -use biome_grit_syntax::GritPredicateAssignment; -use biome_rowan::AstNode; +use biome_formatter::write; +use biome_grit_syntax::{GritPredicateAssignment, GritPredicateAssignmentFields}; + #[derive(Debug, Clone, Default)] pub(crate) struct FormatGritPredicateAssignment; impl FormatNodeRule for FormatGritPredicateAssignment { @@ -9,6 +10,21 @@ impl FormatNodeRule for FormatGritPredicateAssignment { node: &GritPredicateAssignment, f: &mut GritFormatter, ) -> FormatResult<()> { - format_verbatim_node(node.syntax()).fmt(f) + let GritPredicateAssignmentFields { + container, + eq_token, + pattern, + } = node.as_fields(); + + write!( + f, + [ + container.format(), + space(), + eq_token.format(), + space(), + pattern.format() + ] + ) } } diff --git a/crates/biome_grit_formatter/tests/specs/grit/patterns/where_pattern.grit.snap b/crates/biome_grit_formatter/tests/specs/grit/patterns/where_pattern.grit.snap index f3db11c84cac..e1098ad62218 100644 --- a/crates/biome_grit_formatter/tests/specs/grit/patterns/where_pattern.grit.snap +++ b/crates/biome_grit_formatter/tests/specs/grit/patterns/where_pattern.grit.snap @@ -28,7 +28,6 @@ Attribute Position: Auto ```grit `$method('$message')` where { - } ``` @@ -37,4 +36,3 @@ Attribute Position: Auto ## Unimplemented nodes/tokens "`$method('$message')`" => 0..21 -" {\n\n" => 27..31 diff --git a/crates/biome_grit_formatter/tests/specs/grit/predicates/assignment.grit b/crates/biome_grit_formatter/tests/specs/grit/predicates/assignment.grit new file mode 100644 index 000000000000..709e7f4ee29b --- /dev/null +++ b/crates/biome_grit_formatter/tests/specs/grit/predicates/assignment.grit @@ -0,0 +1,2 @@ +`console.log($message)` as $log where{ +$new_log_call=`logger.log($message)`} \ No newline at end of file diff --git a/crates/biome_grit_formatter/tests/specs/grit/predicates/assignment.grit.snap b/crates/biome_grit_formatter/tests/specs/grit/predicates/assignment.grit.snap new file mode 100644 index 000000000000..92bef0737f41 --- /dev/null +++ b/crates/biome_grit_formatter/tests/specs/grit/predicates/assignment.grit.snap @@ -0,0 +1,39 @@ +--- +source: crates/biome_formatter_test/src/snapshot_builder.rs +info: grit/predicates/assignment.grit +--- +# Input + +```grit +`console.log($message)` as $log where{ +$new_log_call=`logger.log($message)`} +``` + + +============================= + +# Outputs + +## Output 1 + +----- +Indent style: Tab +Indent width: 2 +Line ending: LF +Line width: 80 +Attribute Position: Auto +----- + +```grit +`console.log($message)` as $log where { + $new_log_call = `logger.log($message)` +} +``` + + + +## Unimplemented nodes/tokens + +"`console.log($message)` as $log " => 0..32 +"\t$new_log_call" => 40..54 +" `logger.log($message)" => 56..78