From 4b495da368162a5b373d078be4ff51e55bffdf69 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Thu, 21 May 2020 14:26:44 +0200 Subject: Transition OnEnter to WorkspaceSnippetEdit This also changes our handiling of snippet edits on the client side. `editor.insertSnippet` unfortunately forces indentation, which we really don't want to have to deal with. So, let's just implement our manual hacky way of dealing with a simple subset of snippets we actually use in rust-analyzer --- crates/ra_ide/src/typing/on_enter.rs | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) (limited to 'crates/ra_ide') diff --git a/crates/ra_ide/src/typing/on_enter.rs b/crates/ra_ide/src/typing/on_enter.rs index 78a40cc94..85be14ad3 100644 --- a/crates/ra_ide/src/typing/on_enter.rs +++ b/crates/ra_ide/src/typing/on_enter.rs @@ -38,17 +38,15 @@ pub(crate) fn on_enter(db: &RootDatabase, position: FilePosition) -> Option bool { @@ -84,7 +82,7 @@ fn node_indent(file: &SourceFile, token: &SyntaxToken) -> Option { #[cfg(test)] mod tests { - use test_utils::{add_cursor, assert_eq_text, extract_offset}; + use test_utils::{assert_eq_text, extract_offset}; use crate::mock_analysis::single_file; @@ -98,7 +96,6 @@ mod tests { assert_eq!(result.source_file_edits.len(), 1); let mut actual = before.to_string(); result.source_file_edits[0].edit.apply(&mut actual); - let actual = add_cursor(&actual, result.cursor_position.unwrap().offset); Some(actual) } @@ -121,7 +118,7 @@ fn foo() { ", r" /// Some docs -/// <|> +/// $0 fn foo() { } ", @@ -137,7 +134,7 @@ impl S { r" impl S { /// Some - /// <|> docs. + /// $0 docs. fn foo() {} } ", @@ -151,7 +148,7 @@ fn foo() { ", r" /// -/// <|> Some docs +/// $0 Some docs fn foo() { } ", @@ -175,7 +172,7 @@ fn main() { r" fn main() { // Fix - // <|> me + // $0 me let x = 1 + 1; } ", @@ -195,7 +192,7 @@ fn main() { r" fn main() { // Fix - // <|> + // $0 // me let x = 1 + 1; } -- cgit v1.2.3