Skip to content

Commit 19c20ea

Browse files
committed
add formatter
1 parent 495224a commit 19c20ea

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

tools/lsp/fmt/fmt.rs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,9 @@ fn format_node(
120120
SyntaxKind::ReturnStatement => {
121121
return format_return_statement(node, writer, state);
122122
}
123+
SyntaxKind::LetStatement => {
124+
return format_let_statement(node, writer, state);
125+
}
123126
SyntaxKind::AtGradient => {
124127
return format_at_gradient(node, writer, state);
125128
}
@@ -803,6 +806,29 @@ fn format_return_statement(
803806
Ok(())
804807
}
805808

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+
806832
fn format_at_gradient(
807833
node: &SyntaxNode,
808834
writer: &mut impl TokenWriter,

tools/lsp/language/semantic_tokens.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ pub fn get_semantic_tokens(
9393
SyntaxKind::ChildrenPlaceholder => Some((self::MACRO, 0)),
9494
SyntaxKind::Binding | SyntaxKind::TwoWayBinding => Some((self::PROPERTY, 0)),
9595
SyntaxKind::ReturnStatement => Some((self::KEYWORD, 0)),
96+
SyntaxKind::LetStatement => Some((self::KEYWORD, 0)),
9697
SyntaxKind::AtImageUrl => Some((self::MACRO, 0)),
9798
SyntaxKind::AtGradient => Some((self::MACRO, 0)),
9899
SyntaxKind::AtTr => Some((self::MACRO, 0)),

0 commit comments

Comments
 (0)