Merge pull request #18739 from Veykril/push-ntpvvqnnovtn

fix: Don't trigger paren wrapping typing handler after idents
This commit is contained in:
Lukas Wirth 2024-12-22 11:22:56 +00:00 committed by GitHub
commit 2f33e85f56
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -174,6 +174,9 @@ fn on_delimited_node_typed(
kinds: &[fn(SyntaxKind) -> bool], kinds: &[fn(SyntaxKind) -> bool],
) -> Option<TextEdit> { ) -> Option<TextEdit> {
let t = reparsed.syntax().token_at_offset(offset).right_biased()?; 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 let (filter, node) = t
.parent_ancestors() .parent_ancestors()
.take_while(|n| n.text_range().start() == offset) .take_while(|n| n.text_range().start() == offset)
@ -1091,6 +1094,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] #[test]
fn adds_closing_parenthesis_for_pat() { fn adds_closing_parenthesis_for_pat() {
type_char( type_char(