@@ -120,6 +120,9 @@ fn format_node(
120
120
SyntaxKind :: ReturnStatement => {
121
121
return format_return_statement ( node, writer, state) ;
122
122
}
123
+ SyntaxKind :: LetStatement => {
124
+ return format_let_statement ( node, writer, state) ;
125
+ }
123
126
SyntaxKind :: AtGradient => {
124
127
return format_at_gradient ( node, writer, state) ;
125
128
}
@@ -803,6 +806,29 @@ fn format_return_statement(
803
806
Ok ( ( ) )
804
807
}
805
808
809
+ fn format_let_statement (
810
+ node : & SyntaxNode ,
811
+ writer : & mut impl TokenWriter ,
812
+ state : & mut FormatState ,
813
+ ) -> Result < ( ) , std:: io:: Error > {
814
+ let mut sub = node. children_with_tokens ( ) ;
815
+ whitespace_to ( & mut sub, SyntaxKind :: Identifier , writer, state, "" ) ?; // "let"
816
+ whitespace_to ( & mut sub, SyntaxKind :: DeclaredIdentifier , writer, state, " " ) ?;
817
+ // if type annotated
818
+ if node. child_token ( SyntaxKind :: Colon ) . is_some ( ) {
819
+ whitespace_to ( & mut sub, SyntaxKind :: Colon , writer, state, "" ) ?;
820
+ if node. child_node ( SyntaxKind :: Type ) . is_some ( ) {
821
+ whitespace_to ( & mut sub, SyntaxKind :: Type , writer, state, " " ) ?;
822
+ }
823
+ }
824
+ whitespace_to ( & mut sub, SyntaxKind :: Equal , writer, state, " " ) ?;
825
+ whitespace_to ( & mut sub, SyntaxKind :: Expression , writer, state, " " ) ?;
826
+ whitespace_to ( & mut sub, SyntaxKind :: Semicolon , writer, state, "" ) ?;
827
+ state. new_line ( ) ;
828
+ finish_node ( sub, writer, state) ?;
829
+ Ok ( ( ) )
830
+ }
831
+
806
832
fn format_at_gradient (
807
833
node : & SyntaxNode ,
808
834
writer : & mut impl TokenWriter ,
0 commit comments