Unnamed repository; edit this file 'description' to name the repository.
| -rw-r--r-- | crates/ide/src/typing.rs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/crates/ide/src/typing.rs b/crates/ide/src/typing.rs index f8b0dbfe62..76c0ebcecb 100644 --- a/crates/ide/src/typing.rs +++ b/crates/ide/src/typing.rs @@ -107,7 +107,7 @@ fn on_char_typed_( '.' => on_dot_typed(&file.tree(), offset), '=' => on_eq_typed(&file.tree(), offset), '>' => on_right_angle_typed(&file.tree(), offset), - '{' | '(' | '<' => on_opening_delimiter_typed(file, offset, char_typed, edition), + '{' | '(' | '<' => return on_opening_delimiter_typed(file, offset, char_typed, edition), '|' => on_pipe_typed(&file.tree(), offset), '+' => on_plus_typed(&file.tree(), offset), _ => None, @@ -126,7 +126,7 @@ fn on_opening_delimiter_typed( offset: TextSize, opening_bracket: char, edition: Edition, -) -> Option<TextEdit> { +) -> Option<ExtendedTextEdit> { type FilterFn = fn(SyntaxKind) -> bool; let (closing_bracket, expected_ast_bracket, allowed_kinds) = match opening_bracket { '{' => ('}', SyntaxKind::L_CURLY, &[ast::Expr::can_cast as FilterFn] as &[FilterFn]), @@ -155,12 +155,12 @@ fn on_opening_delimiter_typed( if let Some(edit) = on_delimited_node_typed(&reparsed, offset, opening_bracket, closing_bracket, allowed_kinds) { - return Some(edit); + return Some(ExtendedTextEdit { edit, is_snippet: true }); } match opening_bracket { - '{' => on_left_brace_typed(&reparsed, offset), - '<' => on_left_angle_typed(&file.tree(), &reparsed, offset), + '{' => on_left_brace_typed(&reparsed, offset).map(conv), + '<' => on_left_angle_typed(&file.tree(), &reparsed, offset).map(conv), _ => None, } } @@ -218,7 +218,7 @@ fn on_delimited_node_typed( // Insert the closing bracket right after the node. Some(TextEdit::insert( node.text_range().end() + TextSize::of(opening_bracket), - closing_bracket.to_string(), + format!("$0{closing_bracket}"), )) } /// Returns an edit which should be applied after `=` was typed. Primarily, |