Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide/src/typing.rs')
-rw-r--r--crates/ide/src/typing.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/crates/ide/src/typing.rs b/crates/ide/src/typing.rs
index 3d9146cc4c..d37318ff45 100644
--- a/crates/ide/src/typing.rs
+++ b/crates/ide/src/typing.rs
@@ -174,6 +174,9 @@ fn on_delimited_node_typed(
kinds: &[fn(SyntaxKind) -> bool],
) -> Option<TextEdit> {
let t = reparsed.syntax().token_at_offset(offset).right_biased()?;
+ if t.prev_token().map_or(false, |t| t.kind().is_any_identifier()) {
+ return None;
+ }
let (filter, node) = t
.parent_ancestors()
.take_while(|n| n.text_range().start() == offset)
@@ -1092,6 +1095,22 @@ fn f() {
}
#[test]
+ fn preceding_whitespace_is_significant_for_closing_brackets() {
+ type_char_noop(
+ '(',
+ r#"
+fn f() { a.b$0if true {} }
+"#,
+ );
+ type_char_noop(
+ '(',
+ r#"
+fn f() { foo$0{} }
+"#,
+ );
+ }
+
+ #[test]
fn adds_closing_parenthesis_for_pat() {
type_char(
'(',