Skip to content

Commit 3c00871

Browse files
authored
optimize matching (#58)
* optimize_reserved_matching * refactor if/else to match
1 parent e4217f2 commit 3c00871

File tree

2 files changed

+469
-384
lines changed

2 files changed

+469
-384
lines changed

src/formatter.rs

+52-34
Original file line numberDiff line numberDiff line change
@@ -45,40 +45,58 @@ pub(crate) fn format(
4545
continue;
4646
}
4747

48-
if token.kind == TokenKind::Whitespace {
49-
// ignore (we do our own whitespace formatting)
50-
} else if token.kind == TokenKind::LineComment {
51-
formatter.format_line_comment(token, &mut formatted_query);
52-
} else if token.kind == TokenKind::BlockComment {
53-
formatter.format_block_comment(token, &mut formatted_query);
54-
} else if token.kind == TokenKind::ReservedTopLevel {
55-
formatter.format_top_level_reserved_word(token, &mut formatted_query);
56-
formatter.previous_reserved_word = Some(token);
57-
} else if token.kind == TokenKind::ReservedTopLevelNoIndent {
58-
formatter.format_top_level_reserved_word_no_indent(token, &mut formatted_query);
59-
formatter.previous_reserved_word = Some(token);
60-
} else if token.kind == TokenKind::ReservedNewline {
61-
formatter.format_newline_reserved_word(token, &mut formatted_query);
62-
formatter.previous_reserved_word = Some(token);
63-
} else if token.kind == TokenKind::Reserved {
64-
formatter.format_with_spaces(token, &mut formatted_query);
65-
formatter.previous_reserved_word = Some(token);
66-
} else if token.kind == TokenKind::OpenParen {
67-
formatter.format_opening_parentheses(token, &mut formatted_query);
68-
} else if token.kind == TokenKind::CloseParen {
69-
formatter.format_closing_parentheses(token, &mut formatted_query);
70-
} else if token.kind == TokenKind::Placeholder {
71-
formatter.format_placeholder(token, &mut formatted_query);
72-
} else if token.value == "," {
73-
formatter.format_comma(token, &mut formatted_query);
74-
} else if token.value == ":" {
75-
formatter.format_with_space_after(token, &mut formatted_query);
76-
} else if token.value == "." {
77-
formatter.format_without_spaces(token, &mut formatted_query);
78-
} else if token.value == ";" {
79-
formatter.format_query_separator(token, &mut formatted_query);
80-
} else {
81-
formatter.format_with_spaces(token, &mut formatted_query);
48+
match token.kind {
49+
TokenKind::Whitespace => {
50+
// ignore (we do our own whitespace formatting)
51+
}
52+
TokenKind::LineComment => {
53+
formatter.format_line_comment(token, &mut formatted_query);
54+
}
55+
TokenKind::BlockComment => {
56+
formatter.format_block_comment(token, &mut formatted_query);
57+
}
58+
TokenKind::ReservedTopLevel => {
59+
formatter.format_top_level_reserved_word(token, &mut formatted_query);
60+
formatter.previous_reserved_word = Some(token);
61+
}
62+
TokenKind::ReservedTopLevelNoIndent => {
63+
formatter.format_top_level_reserved_word_no_indent(token, &mut formatted_query);
64+
formatter.previous_reserved_word = Some(token);
65+
}
66+
TokenKind::ReservedNewline => {
67+
formatter.format_newline_reserved_word(token, &mut formatted_query);
68+
formatter.previous_reserved_word = Some(token);
69+
}
70+
TokenKind::Reserved => {
71+
formatter.format_with_spaces(token, &mut formatted_query);
72+
formatter.previous_reserved_word = Some(token);
73+
}
74+
TokenKind::OpenParen => {
75+
formatter.format_opening_parentheses(token, &mut formatted_query);
76+
}
77+
TokenKind::CloseParen => {
78+
formatter.format_closing_parentheses(token, &mut formatted_query);
79+
}
80+
TokenKind::Placeholder => {
81+
formatter.format_placeholder(token, &mut formatted_query);
82+
}
83+
_ => match token.value {
84+
"," => {
85+
formatter.format_comma(token, &mut formatted_query);
86+
}
87+
":" => {
88+
formatter.format_with_space_after(token, &mut formatted_query);
89+
}
90+
"." => {
91+
formatter.format_without_spaces(token, &mut formatted_query);
92+
}
93+
";" => {
94+
formatter.format_query_separator(token, &mut formatted_query);
95+
}
96+
_ => {
97+
formatter.format_with_spaces(token, &mut formatted_query);
98+
}
99+
},
82100
}
83101
}
84102
formatted_query.trim().to_string()

0 commit comments

Comments
 (0)