From 164ba6092c41fe9b4ecd5bedb5d3d6d849c51639 Mon Sep 17 00:00:00 2001 From: Phil Ellison Date: Sun, 28 Jul 2019 10:42:31 +0100 Subject: [PATCH 01/12] Remove unused highlights_code_inside_macro snapshot, inline rename_mod_in_dir snapshot --- crates/ra_ide_api/src/references.rs | 34 +++++++++++++- .../tests__highlights_code_inside_macros.snap | 44 ------------------- .../snapshots/tests__rename_mod_in_dir.snap | 38 ---------------- 3 files changed, 33 insertions(+), 83 deletions(-) delete mode 100644 crates/ra_ide_api/src/snapshots/tests__highlights_code_inside_macros.snap delete mode 100644 crates/ra_ide_api/src/snapshots/tests__rename_mod_in_dir.snap diff --git a/crates/ra_ide_api/src/references.rs b/crates/ra_ide_api/src/references.rs index 5c74d3e363e..a75a0eb4f80 100644 --- a/crates/ra_ide_api/src/references.rs +++ b/crates/ra_ide_api/src/references.rs @@ -356,7 +356,39 @@ mod tests { ); let new_name = "foo2"; let source_change = analysis.rename(position, new_name).unwrap(); - assert_debug_snapshot_matches!("rename_mod_in_dir", &source_change); + assert_debug_snapshot_matches!(&source_change, +@r#"Some( + SourceChange { + label: "rename", + source_file_edits: [ + SourceFileEdit { + file_id: FileId( + 1, + ), + edit: TextEdit { + atoms: [ + AtomTextEdit { + delete: [4; 7), + insert: "foo2", + }, + ], + }, + }, + ], + file_system_edits: [ + MoveFile { + src: FileId( + 2, + ), + dst_source_root: SourceRootId( + 0, + ), + dst_path: "foo2/mod.rs", + }, + ], + cursor_position: None, + }, +)"#); } fn test_rename(text: &str, new_name: &str, expected: &str) { diff --git a/crates/ra_ide_api/src/snapshots/tests__highlights_code_inside_macros.snap b/crates/ra_ide_api/src/snapshots/tests__highlights_code_inside_macros.snap deleted file mode 100644 index ae8923e75f1..00000000000 --- a/crates/ra_ide_api/src/snapshots/tests__highlights_code_inside_macros.snap +++ /dev/null @@ -1,44 +0,0 @@ ---- -created: "2019-02-01T07:46:59.130146403+00:00" -creator: insta@0.5.3 -expression: "&highlights" -source: crates/ra_ide_api/src/syntax_highlighting.rs ---- -[ - HighlightedRange { - range: [13; 15), - tag: "keyword" - }, - HighlightedRange { - range: [16; 20), - tag: "function" - }, - HighlightedRange { - range: [41; 45), - tag: "macro" - }, - HighlightedRange { - range: [48; 51), - tag: "keyword" - }, - HighlightedRange { - range: [56; 58), - tag: "literal" - }, - HighlightedRange { - range: [48; 51), - tag: "keyword" - }, - HighlightedRange { - range: [52; 53), - tag: "function" - }, - HighlightedRange { - range: [56; 58), - tag: "literal" - }, - HighlightedRange { - range: [60; 61), - tag: "text" - } -] diff --git a/crates/ra_ide_api/src/snapshots/tests__rename_mod_in_dir.snap b/crates/ra_ide_api/src/snapshots/tests__rename_mod_in_dir.snap deleted file mode 100644 index aaff9b4b50c..00000000000 --- a/crates/ra_ide_api/src/snapshots/tests__rename_mod_in_dir.snap +++ /dev/null @@ -1,38 +0,0 @@ ---- -created: "2019-05-23T22:23:35.213830371Z" -creator: insta@0.8.1 -source: crates/ra_ide_api/src/references.rs -expression: "&source_change" ---- -Some( - SourceChange { - label: "rename", - source_file_edits: [ - SourceFileEdit { - file_id: FileId( - 1, - ), - edit: TextEdit { - atoms: [ - AtomTextEdit { - delete: [4; 7), - insert: "foo2", - }, - ], - }, - }, - ], - file_system_edits: [ - MoveFile { - src: FileId( - 2, - ), - dst_source_root: SourceRootId( - 0, - ), - dst_path: "foo2/mod.rs", - }, - ], - cursor_position: None, - }, -) From eb7d1b0feeca276c485b8325df2851756ef861b4 Mon Sep 17 00:00:00 2001 From: Phil Ellison Date: Sun, 28 Jul 2019 11:24:29 +0100 Subject: [PATCH 02/12] Inline snapshots for all tests in complete_scope.rs --- .../src/completion/complete_scope.rs | 465 ++++++++++++++---- .../completion_item__bindings_from_for.snap | 23 - ...completion_item__bindings_from_if_let.snap | 31 -- .../completion_item__bindings_from_let.snap | 32 -- .../completion_item__completes_prelude.snap | 30 -- ...t_show_both_completions_for_shadowing.snap | 24 - .../completion_item__extern_prelude.snap | 15 - .../completion_item__generic_params.snap | 23 - ...letion_item__generic_params_in_struct.snap | 22 - .../completion_item__module_items.snap | 30 -- ..._item__module_items_in_nested_modules.snap | 23 - .../completion_item__return_type.snap | 23 - .../completion_item__self_in_methods.snap | 23 - crates/ra_ide_api/src/references.rs | 66 +-- 14 files changed, 396 insertions(+), 434 deletions(-) delete mode 100644 crates/ra_ide_api/src/completion/snapshots/completion_item__bindings_from_for.snap delete mode 100644 crates/ra_ide_api/src/completion/snapshots/completion_item__bindings_from_if_let.snap delete mode 100644 crates/ra_ide_api/src/completion/snapshots/completion_item__bindings_from_let.snap delete mode 100644 crates/ra_ide_api/src/completion/snapshots/completion_item__completes_prelude.snap delete mode 100644 crates/ra_ide_api/src/completion/snapshots/completion_item__dont_show_both_completions_for_shadowing.snap delete mode 100644 crates/ra_ide_api/src/completion/snapshots/completion_item__extern_prelude.snap delete mode 100644 crates/ra_ide_api/src/completion/snapshots/completion_item__generic_params.snap delete mode 100644 crates/ra_ide_api/src/completion/snapshots/completion_item__generic_params_in_struct.snap delete mode 100644 crates/ra_ide_api/src/completion/snapshots/completion_item__module_items.snap delete mode 100644 crates/ra_ide_api/src/completion/snapshots/completion_item__module_items_in_nested_modules.snap delete mode 100644 crates/ra_ide_api/src/completion/snapshots/completion_item__return_type.snap delete mode 100644 crates/ra_ide_api/src/completion/snapshots/completion_item__self_in_methods.snap diff --git a/crates/ra_ide_api/src/completion/complete_scope.rs b/crates/ra_ide_api/src/completion/complete_scope.rs index f920340557c..1baa5227acb 100644 --- a/crates/ra_ide_api/src/completion/complete_scope.rs +++ b/crates/ra_ide_api/src/completion/complete_scope.rs @@ -121,172 +121,431 @@ impl ImportResolver { #[cfg(test)] mod tests { - use crate::completion::{check_completion, CompletionKind}; + use crate::completion::{do_completion, CompletionItem, CompletionKind}; + use insta::assert_debug_snapshot_matches; - fn check_reference_completion(name: &str, code: &str) { - check_completion(name, code, CompletionKind::Reference); + fn do_reference_completion(code: &str) -> Vec { + do_completion(code, CompletionKind::Reference) } #[test] fn completes_bindings_from_let() { - check_reference_completion( - "bindings_from_let", - r" - fn quux(x: i32) { - let y = 92; - 1 + <|>; - let z = (); - } - ", + assert_debug_snapshot_matches!( + do_reference_completion( + r" + fn quux(x: i32) { + let y = 92; + 1 + <|>; + let z = (); + } + " + ), +@r###" + ⋮[ + ⋮ CompletionItem { + ⋮ label: "quux", + ⋮ source_range: [91; 91), + ⋮ delete: [91; 91), + ⋮ insert: "quux($0)", + ⋮ kind: Function, + ⋮ detail: "fn quux(x: i32)", + ⋮ }, + ⋮ CompletionItem { + ⋮ label: "x", + ⋮ source_range: [91; 91), + ⋮ delete: [91; 91), + ⋮ insert: "x", + ⋮ kind: Binding, + ⋮ detail: "i32", + ⋮ }, + ⋮ CompletionItem { + ⋮ label: "y", + ⋮ source_range: [91; 91), + ⋮ delete: [91; 91), + ⋮ insert: "y", + ⋮ kind: Binding, + ⋮ detail: "i32", + ⋮ }, + ⋮] + "### ); } #[test] fn completes_bindings_from_if_let() { - check_reference_completion( - "bindings_from_if_let", - r" - fn quux() { - if let Some(x) = foo() { - let y = 92; - }; - if let Some(a) = bar() { - let b = 62; - 1 + <|> + assert_debug_snapshot_matches!( + do_reference_completion( + r" + fn quux() { + if let Some(x) = foo() { + let y = 92; + }; + if let Some(a) = bar() { + let b = 62; + 1 + <|> + } } - } - ", + " + ), +@r###" + ⋮[ + ⋮ CompletionItem { + ⋮ label: "a", + ⋮ source_range: [242; 242), + ⋮ delete: [242; 242), + ⋮ insert: "a", + ⋮ kind: Binding, + ⋮ }, + ⋮ CompletionItem { + ⋮ label: "b", + ⋮ source_range: [242; 242), + ⋮ delete: [242; 242), + ⋮ insert: "b", + ⋮ kind: Binding, + ⋮ detail: "i32", + ⋮ }, + ⋮ CompletionItem { + ⋮ label: "quux", + ⋮ source_range: [242; 242), + ⋮ delete: [242; 242), + ⋮ insert: "quux()$0", + ⋮ kind: Function, + ⋮ detail: "fn quux()", + ⋮ }, + ⋮] + "### ); } #[test] fn completes_bindings_from_for() { - check_reference_completion( - "bindings_from_for", - r" - fn quux() { - for x in &[1, 2, 3] { - <|> + assert_debug_snapshot_matches!( + do_reference_completion( + r" + fn quux() { + for x in &[1, 2, 3] { + <|> + } } - } - ", + " + ), +@r###" + ⋮[ + ⋮ CompletionItem { + ⋮ label: "quux", + ⋮ source_range: [95; 95), + ⋮ delete: [95; 95), + ⋮ insert: "quux()$0", + ⋮ kind: Function, + ⋮ detail: "fn quux()", + ⋮ }, + ⋮ CompletionItem { + ⋮ label: "x", + ⋮ source_range: [95; 95), + ⋮ delete: [95; 95), + ⋮ insert: "x", + ⋮ kind: Binding, + ⋮ }, + ⋮] + "### ); } #[test] fn completes_generic_params() { - check_reference_completion( - "generic_params", - r" - fn quux() { - <|> - } - ", + assert_debug_snapshot_matches!( + do_reference_completion( + r" + fn quux() { + <|> + } + " + ), +@r###" + ⋮[ + ⋮ CompletionItem { + ⋮ label: "T", + ⋮ source_range: [52; 52), + ⋮ delete: [52; 52), + ⋮ insert: "T", + ⋮ kind: TypeParam, + ⋮ }, + ⋮ CompletionItem { + ⋮ label: "quux", + ⋮ source_range: [52; 52), + ⋮ delete: [52; 52), + ⋮ insert: "quux()$0", + ⋮ kind: Function, + ⋮ detail: "fn quux()", + ⋮ }, + ⋮] + "### ); } #[test] fn completes_generic_params_in_struct() { - check_reference_completion( - "generic_params_in_struct", - r" - struct X { - x: <|> - } - ", + assert_debug_snapshot_matches!( + do_reference_completion( + r" + struct X { + x: <|> + } + " + ), +@r###" + ⋮[ + ⋮ CompletionItem { + ⋮ label: "T", + ⋮ source_range: [54; 54), + ⋮ delete: [54; 54), + ⋮ insert: "T", + ⋮ kind: TypeParam, + ⋮ }, + ⋮ CompletionItem { + ⋮ label: "X", + ⋮ source_range: [54; 54), + ⋮ delete: [54; 54), + ⋮ insert: "X", + ⋮ kind: Struct, + ⋮ }, + ⋮] + "### ); } #[test] fn completes_module_items() { - check_reference_completion( - "module_items", - r" - struct Foo; - enum Baz {} - fn quux() { - <|> - } - ", + assert_debug_snapshot_matches!( + do_reference_completion( + r" + struct Foo; + enum Baz {} + fn quux() { + <|> + } + " + ), +@r###" + ⋮[ + ⋮ CompletionItem { + ⋮ label: "Baz", + ⋮ source_range: [105; 105), + ⋮ delete: [105; 105), + ⋮ insert: "Baz", + ⋮ kind: Enum, + ⋮ }, + ⋮ CompletionItem { + ⋮ label: "Foo", + ⋮ source_range: [105; 105), + ⋮ delete: [105; 105), + ⋮ insert: "Foo", + ⋮ kind: Struct, + ⋮ }, + ⋮ CompletionItem { + ⋮ label: "quux", + ⋮ source_range: [105; 105), + ⋮ delete: [105; 105), + ⋮ insert: "quux()$0", + ⋮ kind: Function, + ⋮ detail: "fn quux()", + ⋮ }, + ⋮] + "### ); } #[test] fn completes_extern_prelude() { - check_reference_completion( - "extern_prelude", - r" - //- /lib.rs - use <|>; + assert_debug_snapshot_matches!( + do_reference_completion( + r" + //- /lib.rs + use <|>; - //- /other_crate/lib.rs - // nothing here - ", + //- /other_crate/lib.rs + // nothing here + " + ), +@r#"[ + CompletionItem { + label: "other_crate", + source_range: [4; 4), + delete: [4; 4), + insert: "other_crate", + kind: Module, + }, +]"# ); } #[test] fn completes_module_items_in_nested_modules() { - check_reference_completion( - "module_items_in_nested_modules", - r" - struct Foo; - mod m { - struct Bar; - fn quux() { <|> } - } - ", + assert_debug_snapshot_matches!( + do_reference_completion( + r" + struct Foo; + mod m { + struct Bar; + fn quux() { <|> } + } + " + ), +@r###" + ⋮[ + ⋮ CompletionItem { + ⋮ label: "Bar", + ⋮ source_range: [117; 117), + ⋮ delete: [117; 117), + ⋮ insert: "Bar", + ⋮ kind: Struct, + ⋮ }, + ⋮ CompletionItem { + ⋮ label: "quux", + ⋮ source_range: [117; 117), + ⋮ delete: [117; 117), + ⋮ insert: "quux()$0", + ⋮ kind: Function, + ⋮ detail: "fn quux()", + ⋮ }, + ⋮] + "### ); } #[test] fn completes_return_type() { - check_reference_completion( - "return_type", - r" - struct Foo; - fn x() -> <|> - ", - ) + assert_debug_snapshot_matches!( + do_reference_completion( + r" + struct Foo; + fn x() -> <|> + " + ), +@r###" + ⋮[ + ⋮ CompletionItem { + ⋮ label: "Foo", + ⋮ source_range: [55; 55), + ⋮ delete: [55; 55), + ⋮ insert: "Foo", + ⋮ kind: Struct, + ⋮ }, + ⋮ CompletionItem { + ⋮ label: "x", + ⋮ source_range: [55; 55), + ⋮ delete: [55; 55), + ⋮ insert: "x()$0", + ⋮ kind: Function, + ⋮ detail: "fn x()", + ⋮ }, + ⋮] + "### + ); } #[test] fn dont_show_both_completions_for_shadowing() { - check_reference_completion( - "dont_show_both_completions_for_shadowing", - r" - fn foo() { - let bar = 92; - { - let bar = 62; - <|> + assert_debug_snapshot_matches!( + do_reference_completion( + r" + fn foo() { + let bar = 92; + { + let bar = 62; + <|> + } } - } - ", - ) + " + ), +@r###" + ⋮[ + ⋮ CompletionItem { + ⋮ label: "bar", + ⋮ source_range: [146; 146), + ⋮ delete: [146; 146), + ⋮ insert: "bar", + ⋮ kind: Binding, + ⋮ detail: "i32", + ⋮ }, + ⋮ CompletionItem { + ⋮ label: "foo", + ⋮ source_range: [146; 146), + ⋮ delete: [146; 146), + ⋮ insert: "foo()$0", + ⋮ kind: Function, + ⋮ detail: "fn foo()", + ⋮ }, + ⋮] + "### + ); } #[test] fn completes_self_in_methods() { - check_reference_completion("self_in_methods", r"impl S { fn foo(&self) { <|> } }") + assert_debug_snapshot_matches!( + do_reference_completion(r"impl S { fn foo(&self) { <|> } }"), +@r#"[ + CompletionItem { + label: "Self", + source_range: [25; 25), + delete: [25; 25), + insert: "Self", + kind: TypeParam, + }, + CompletionItem { + label: "self", + source_range: [25; 25), + delete: [25; 25), + insert: "self", + kind: Binding, + detail: "&{unknown}", + }, +]"# + ); } #[test] fn completes_prelude() { - check_reference_completion( - "completes_prelude", - " - //- /main.rs - fn foo() { let x: <|> } + assert_debug_snapshot_matches!( + do_reference_completion( + " + //- /main.rs + fn foo() { let x: <|> } - //- /std/lib.rs - #[prelude_import] - use prelude::*; + //- /std/lib.rs + #[prelude_import] + use prelude::*; - mod prelude { - struct Option; - } - ", + mod prelude { + struct Option; + } + " + ), +@r#"[ + CompletionItem { + label: "Option", + source_range: [18; 18), + delete: [18; 18), + insert: "Option", + kind: Struct, + }, + CompletionItem { + label: "foo", + source_range: [18; 18), + delete: [18; 18), + insert: "foo()$0", + kind: Function, + detail: "fn foo()", + }, + CompletionItem { + label: "std", + source_range: [18; 18), + delete: [18; 18), + insert: "std", + kind: Module, + }, +]"# ); } } diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__bindings_from_for.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__bindings_from_for.snap deleted file mode 100644 index e9b717a45be..00000000000 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__bindings_from_for.snap +++ /dev/null @@ -1,23 +0,0 @@ ---- -created: "2019-05-23T22:23:35.119822026Z" -creator: insta@0.8.1 -source: crates/ra_ide_api/src/completion/completion_item.rs -expression: kind_completions ---- -[ - CompletionItem { - label: "quux", - source_range: [83; 83), - delete: [83; 83), - insert: "quux()$0", - kind: Function, - detail: "fn quux()", - }, - CompletionItem { - label: "x", - source_range: [83; 83), - delete: [83; 83), - insert: "x", - kind: Binding, - }, -] diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__bindings_from_if_let.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__bindings_from_if_let.snap deleted file mode 100644 index f94477b4380..00000000000 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__bindings_from_if_let.snap +++ /dev/null @@ -1,31 +0,0 @@ ---- -created: "2019-07-23T16:11:48.828805910Z" -creator: insta@0.8.1 -source: crates/ra_ide_api/src/completion/completion_item.rs -expression: kind_completions ---- -[ - CompletionItem { - label: "a", - source_range: [214; 214), - delete: [214; 214), - insert: "a", - kind: Binding, - }, - CompletionItem { - label: "b", - source_range: [214; 214), - delete: [214; 214), - insert: "b", - kind: Binding, - detail: "i32", - }, - CompletionItem { - label: "quux", - source_range: [214; 214), - delete: [214; 214), - insert: "quux()$0", - kind: Function, - detail: "fn quux()", - }, -] diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__bindings_from_let.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__bindings_from_let.snap deleted file mode 100644 index 590e2a820b0..00000000000 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__bindings_from_let.snap +++ /dev/null @@ -1,32 +0,0 @@ ---- -created: "2019-07-23T16:11:48.828811567Z" -creator: insta@0.8.1 -source: crates/ra_ide_api/src/completion/completion_item.rs -expression: kind_completions ---- -[ - CompletionItem { - label: "quux", - source_range: [79; 79), - delete: [79; 79), - insert: "quux($0)", - kind: Function, - detail: "fn quux(x: i32)", - }, - CompletionItem { - label: "x", - source_range: [79; 79), - delete: [79; 79), - insert: "x", - kind: Binding, - detail: "i32", - }, - CompletionItem { - label: "y", - source_range: [79; 79), - delete: [79; 79), - insert: "y", - kind: Binding, - detail: "i32", - }, -] diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__completes_prelude.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__completes_prelude.snap deleted file mode 100644 index b339c6c5f9b..00000000000 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__completes_prelude.snap +++ /dev/null @@ -1,30 +0,0 @@ ---- -created: "2019-05-23T22:23:35.139262926Z" -creator: insta@0.8.1 -source: crates/ra_ide_api/src/completion/completion_item.rs -expression: kind_completions ---- -[ - CompletionItem { - label: "Option", - source_range: [18; 18), - delete: [18; 18), - insert: "Option", - kind: Struct, - }, - CompletionItem { - label: "foo", - source_range: [18; 18), - delete: [18; 18), - insert: "foo()$0", - kind: Function, - detail: "fn foo()", - }, - CompletionItem { - label: "std", - source_range: [18; 18), - delete: [18; 18), - insert: "std", - kind: Module, - }, -] diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_show_both_completions_for_shadowing.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_show_both_completions_for_shadowing.snap deleted file mode 100644 index 158a2e5b934..00000000000 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_show_both_completions_for_shadowing.snap +++ /dev/null @@ -1,24 +0,0 @@ ---- -created: "2019-07-23T16:11:48.860949870Z" -creator: insta@0.8.1 -source: crates/ra_ide_api/src/completion/completion_item.rs -expression: kind_completions ---- -[ - CompletionItem { - label: "bar", - source_range: [126; 126), - delete: [126; 126), - insert: "bar", - kind: Binding, - detail: "i32", - }, - CompletionItem { - label: "foo", - source_range: [126; 126), - delete: [126; 126), - insert: "foo()$0", - kind: Function, - detail: "fn foo()", - }, -] diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__extern_prelude.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__extern_prelude.snap deleted file mode 100644 index b9449a76c11..00000000000 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__extern_prelude.snap +++ /dev/null @@ -1,15 +0,0 @@ ---- -created: "2019-05-23T22:23:35.123197049Z" -creator: insta@0.8.1 -source: crates/ra_ide_api/src/completion/completion_item.rs -expression: kind_completions ---- -[ - CompletionItem { - label: "other_crate", - source_range: [4; 4), - delete: [4; 4), - insert: "other_crate", - kind: Module, - }, -] diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__generic_params.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__generic_params.snap deleted file mode 100644 index eb1a4151af6..00000000000 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__generic_params.snap +++ /dev/null @@ -1,23 +0,0 @@ ---- -created: "2019-05-23T22:23:35.123825399Z" -creator: insta@0.8.1 -source: crates/ra_ide_api/src/completion/completion_item.rs -expression: kind_completions ---- -[ - CompletionItem { - label: "T", - source_range: [44; 44), - delete: [44; 44), - insert: "T", - kind: TypeParam, - }, - CompletionItem { - label: "quux", - source_range: [44; 44), - delete: [44; 44), - insert: "quux()$0", - kind: Function, - detail: "fn quux()", - }, -] diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__generic_params_in_struct.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__generic_params_in_struct.snap deleted file mode 100644 index 52f08267f71..00000000000 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__generic_params_in_struct.snap +++ /dev/null @@ -1,22 +0,0 @@ ---- -created: "2019-05-23T22:23:35.130778739Z" -creator: insta@0.8.1 -source: crates/ra_ide_api/src/completion/completion_item.rs -expression: kind_completions ---- -[ - CompletionItem { - label: "T", - source_range: [46; 46), - delete: [46; 46), - insert: "T", - kind: TypeParam, - }, - CompletionItem { - label: "X", - source_range: [46; 46), - delete: [46; 46), - insert: "X", - kind: Struct, - }, -] diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__module_items.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__module_items.snap deleted file mode 100644 index cee4898c3e8..00000000000 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__module_items.snap +++ /dev/null @@ -1,30 +0,0 @@ ---- -created: "2019-05-23T22:23:35.133106898Z" -creator: insta@0.8.1 -source: crates/ra_ide_api/src/completion/completion_item.rs -expression: kind_completions ---- -[ - CompletionItem { - label: "Baz", - source_range: [89; 89), - delete: [89; 89), - insert: "Baz", - kind: Enum, - }, - CompletionItem { - label: "Foo", - source_range: [89; 89), - delete: [89; 89), - insert: "Foo", - kind: Struct, - }, - CompletionItem { - label: "quux", - source_range: [89; 89), - delete: [89; 89), - insert: "quux()$0", - kind: Function, - detail: "fn quux()", - }, -] diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__module_items_in_nested_modules.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__module_items_in_nested_modules.snap deleted file mode 100644 index ce18e5bb7c2..00000000000 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__module_items_in_nested_modules.snap +++ /dev/null @@ -1,23 +0,0 @@ ---- -created: "2019-05-23T22:23:35.134417551Z" -creator: insta@0.8.1 -source: crates/ra_ide_api/src/completion/completion_item.rs -expression: kind_completions ---- -[ - CompletionItem { - label: "Bar", - source_range: [101; 101), - delete: [101; 101), - insert: "Bar", - kind: Struct, - }, - CompletionItem { - label: "quux", - source_range: [101; 101), - delete: [101; 101), - insert: "quux()$0", - kind: Function, - detail: "fn quux()", - }, -] diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__return_type.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__return_type.snap deleted file mode 100644 index 16dd18431b4..00000000000 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__return_type.snap +++ /dev/null @@ -1,23 +0,0 @@ ---- -created: "2019-05-23T22:23:35.140648630Z" -creator: insta@0.8.1 -source: crates/ra_ide_api/src/completion/completion_item.rs -expression: kind_completions ---- -[ - CompletionItem { - label: "Foo", - source_range: [47; 47), - delete: [47; 47), - insert: "Foo", - kind: Struct, - }, - CompletionItem { - label: "x", - source_range: [47; 47), - delete: [47; 47), - insert: "x()$0", - kind: Function, - detail: "fn x()", - }, -] diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__self_in_methods.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__self_in_methods.snap deleted file mode 100644 index b7bcbe86478..00000000000 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__self_in_methods.snap +++ /dev/null @@ -1,23 +0,0 @@ ---- -created: "2019-07-23T16:11:48.859812318Z" -creator: insta@0.8.1 -source: crates/ra_ide_api/src/completion/completion_item.rs -expression: kind_completions ---- -[ - CompletionItem { - label: "Self", - source_range: [25; 25), - delete: [25; 25), - insert: "Self", - kind: TypeParam, - }, - CompletionItem { - label: "self", - source_range: [25; 25), - delete: [25; 25), - insert: "self", - kind: Binding, - detail: "&{unknown}", - }, -] diff --git a/crates/ra_ide_api/src/references.rs b/crates/ra_ide_api/src/references.rs index a75a0eb4f80..9b9f75af0bf 100644 --- a/crates/ra_ide_api/src/references.rs +++ b/crates/ra_ide_api/src/references.rs @@ -357,38 +357,40 @@ mod tests { let new_name = "foo2"; let source_change = analysis.rename(position, new_name).unwrap(); assert_debug_snapshot_matches!(&source_change, -@r#"Some( - SourceChange { - label: "rename", - source_file_edits: [ - SourceFileEdit { - file_id: FileId( - 1, - ), - edit: TextEdit { - atoms: [ - AtomTextEdit { - delete: [4; 7), - insert: "foo2", - }, - ], - }, - }, - ], - file_system_edits: [ - MoveFile { - src: FileId( - 2, - ), - dst_source_root: SourceRootId( - 0, - ), - dst_path: "foo2/mod.rs", - }, - ], - cursor_position: None, - }, -)"#); +@r###" + ⋮Some( + ⋮ SourceChange { + ⋮ label: "rename", + ⋮ source_file_edits: [ + ⋮ SourceFileEdit { + ⋮ file_id: FileId( + ⋮ 1, + ⋮ ), + ⋮ edit: TextEdit { + ⋮ atoms: [ + ⋮ AtomTextEdit { + ⋮ delete: [4; 7), + ⋮ insert: "foo2", + ⋮ }, + ⋮ ], + ⋮ }, + ⋮ }, + ⋮ ], + ⋮ file_system_edits: [ + ⋮ MoveFile { + ⋮ src: FileId( + ⋮ 2, + ⋮ ), + ⋮ dst_source_root: SourceRootId( + ⋮ 0, + ⋮ ), + ⋮ dst_path: "foo2/mod.rs", + ⋮ }, + ⋮ ], + ⋮ cursor_position: None, + ⋮ }, + ⋮) + "###); } fn test_rename(text: &str, new_name: &str, expected: &str) { From 460423e66c7a8d48084813c0d592066b4bef3e85 Mon Sep 17 00:00:00 2001 From: Phil Ellison Date: Sun, 28 Jul 2019 11:35:48 +0100 Subject: [PATCH 03/12] Inline snapshots for all tests in presentation.rs --- .../ra_ide_api/src/completion/presentation.rs | 209 +++++++++++++----- ...ender_function_parens_if_already_call.snap | 24 -- ...ction_parens_if_already_call_assoc_fn.snap | 16 -- ...nt_render_function_parens_in_use_item.snap | 16 -- ...m__inserts_parens_for_function_calls1.snap | 24 -- ...m__inserts_parens_for_function_calls2.snap | 24 -- ...m__inserts_parens_for_function_calls3.snap | 16 -- 7 files changed, 152 insertions(+), 177 deletions(-) delete mode 100644 crates/ra_ide_api/src/completion/snapshots/completion_item__dont_render_function_parens_if_already_call.snap delete mode 100644 crates/ra_ide_api/src/completion/snapshots/completion_item__dont_render_function_parens_if_already_call_assoc_fn.snap delete mode 100644 crates/ra_ide_api/src/completion/snapshots/completion_item__dont_render_function_parens_in_use_item.snap delete mode 100644 crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls1.snap delete mode 100644 crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls2.snap delete mode 100644 crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls3.snap diff --git a/crates/ra_ide_api/src/completion/presentation.rs b/crates/ra_ide_api/src/completion/presentation.rs index 5cf55a496c0..fe7581adfd2 100644 --- a/crates/ra_ide_api/src/completion/presentation.rs +++ b/crates/ra_ide_api/src/completion/presentation.rs @@ -183,79 +183,174 @@ impl Completions { #[cfg(test)] mod tests { use test_utils::covers; + use crate::completion::{do_completion, CompletionItem, CompletionKind}; + use insta::assert_debug_snapshot_matches; - use crate::completion::{check_completion, CompletionKind}; - - fn check_reference_completion(code: &str, expected_completions: &str) { - check_completion(code, expected_completions, CompletionKind::Reference); + fn do_reference_completion(code: &str) -> Vec { + do_completion(code, CompletionKind::Reference) } #[test] fn inserts_parens_for_function_calls() { covers!(inserts_parens_for_function_calls); - check_reference_completion( - "inserts_parens_for_function_calls1", - r" - fn no_args() {} - fn main() { no_<|> } - ", + assert_debug_snapshot_matches!( + do_reference_completion( + r" + fn no_args() {} + fn main() { no_<|> } + " + ), +@r###" + ⋮[ + ⋮ CompletionItem { + ⋮ label: "main", + ⋮ source_range: [61; 64), + ⋮ delete: [61; 64), + ⋮ insert: "main()$0", + ⋮ kind: Function, + ⋮ detail: "fn main()", + ⋮ }, + ⋮ CompletionItem { + ⋮ label: "no_args", + ⋮ source_range: [61; 64), + ⋮ delete: [61; 64), + ⋮ insert: "no_args()$0", + ⋮ kind: Function, + ⋮ detail: "fn no_args()", + ⋮ }, + ⋮] + "### ); - check_reference_completion( - "inserts_parens_for_function_calls2", - r" - fn with_args(x: i32, y: String) {} - fn main() { with_<|> } - ", + assert_debug_snapshot_matches!( + do_reference_completion( + r" + fn with_args(x: i32, y: String) {} + fn main() { with_<|> } + " + ), +@r###" + ⋮[ + ⋮ CompletionItem { + ⋮ label: "main", + ⋮ source_range: [80; 85), + ⋮ delete: [80; 85), + ⋮ insert: "main()$0", + ⋮ kind: Function, + ⋮ detail: "fn main()", + ⋮ }, + ⋮ CompletionItem { + ⋮ label: "with_args", + ⋮ source_range: [80; 85), + ⋮ delete: [80; 85), + ⋮ insert: "with_args($0)", + ⋮ kind: Function, + ⋮ detail: "fn with_args(x: i32, y: String)", + ⋮ }, + ⋮] + "### + ); + assert_debug_snapshot_matches!( + do_reference_completion( + r" + struct S {} + impl S { + fn foo(&self) {} + } + fn bar(s: &S) { + s.f<|> + } + " + ), +@r###" + ⋮[ + ⋮ CompletionItem { + ⋮ label: "foo", + ⋮ source_range: [163; 164), + ⋮ delete: [163; 164), + ⋮ insert: "foo()$0", + ⋮ kind: Method, + ⋮ detail: "fn foo(&self)", + ⋮ }, + ⋮] + "### ); - check_reference_completion( - "inserts_parens_for_function_calls3", - r" - struct S {} - impl S { - fn foo(&self) {} - } - fn bar(s: &S) { - s.f<|> - } - ", - ) } #[test] fn dont_render_function_parens_in_use_item() { - check_reference_completion( - "dont_render_function_parens_in_use_item", - " - //- /lib.rs - mod m { pub fn foo() {} } - use crate::m::f<|>; - ", - ) + assert_debug_snapshot_matches!( + do_reference_completion( + " + //- /lib.rs + mod m { pub fn foo() {} } + use crate::m::f<|>; + " + ), +@r#"[ + CompletionItem { + label: "foo", + source_range: [40; 41), + delete: [40; 41), + insert: "foo", + kind: Function, + detail: "pub fn foo()", + }, +]"# + ); } #[test] fn dont_render_function_parens_if_already_call() { - check_reference_completion( - "dont_render_function_parens_if_already_call", - " - //- /lib.rs - fn frobnicate() {} - fn main() { - frob<|>(); - } - ", + assert_debug_snapshot_matches!( + do_reference_completion( + " + //- /lib.rs + fn frobnicate() {} + fn main() { + frob<|>(); + } + " + ), +@r#"[ + CompletionItem { + label: "frobnicate", + source_range: [35; 39), + delete: [35; 39), + insert: "frobnicate", + kind: Function, + detail: "fn frobnicate()", + }, + CompletionItem { + label: "main", + source_range: [35; 39), + delete: [35; 39), + insert: "main", + kind: Function, + detail: "fn main()", + }, +]"# + ); + assert_debug_snapshot_matches!( + do_reference_completion( + " + //- /lib.rs + struct Foo {} + impl Foo { fn new() -> Foo {} } + fn main() { + Foo::ne<|>(); + } + " + ), +@r#"[ + CompletionItem { + label: "new", + source_range: [67; 69), + delete: [67; 69), + insert: "new", + kind: Function, + detail: "fn new() -> Foo", + }, +]"# ); - check_reference_completion( - "dont_render_function_parens_if_already_call_assoc_fn", - " - //- /lib.rs - struct Foo {} - impl Foo { fn new() -> Foo {} } - fn main() { - Foo::ne<|>(); - } - ", - ) } - } diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_render_function_parens_if_already_call.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_render_function_parens_if_already_call.snap deleted file mode 100644 index 46bea2ccd40..00000000000 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_render_function_parens_if_already_call.snap +++ /dev/null @@ -1,24 +0,0 @@ ---- -created: "2019-05-23T22:23:35.158296242Z" -creator: insta@0.8.1 -source: crates/ra_ide_api/src/completion/completion_item.rs -expression: kind_completions ---- -[ - CompletionItem { - label: "frobnicate", - source_range: [35; 39), - delete: [35; 39), - insert: "frobnicate", - kind: Function, - detail: "fn frobnicate()", - }, - CompletionItem { - label: "main", - source_range: [35; 39), - delete: [35; 39), - insert: "main", - kind: Function, - detail: "fn main()", - }, -] diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_render_function_parens_if_already_call_assoc_fn.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_render_function_parens_if_already_call_assoc_fn.snap deleted file mode 100644 index b09a6745e6a..00000000000 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_render_function_parens_if_already_call_assoc_fn.snap +++ /dev/null @@ -1,16 +0,0 @@ ---- -created: "2019-05-23T22:44:10.920136527Z" -creator: insta@0.8.1 -source: crates/ra_ide_api/src/completion/completion_item.rs -expression: kind_completions ---- -[ - CompletionItem { - label: "new", - source_range: [67; 69), - delete: [67; 69), - insert: "new", - kind: Function, - detail: "fn new() -> Foo", - }, -] diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_render_function_parens_in_use_item.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_render_function_parens_in_use_item.snap deleted file mode 100644 index 84ccc816062..00000000000 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_render_function_parens_in_use_item.snap +++ /dev/null @@ -1,16 +0,0 @@ ---- -created: "2019-05-23T22:23:35.154795561Z" -creator: insta@0.8.1 -source: crates/ra_ide_api/src/completion/completion_item.rs -expression: kind_completions ---- -[ - CompletionItem { - label: "foo", - source_range: [40; 41), - delete: [40; 41), - insert: "foo", - kind: Function, - detail: "pub fn foo()", - }, -] diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls1.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls1.snap deleted file mode 100644 index c795b9aaee8..00000000000 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls1.snap +++ /dev/null @@ -1,24 +0,0 @@ ---- -created: "2019-05-23T22:23:35.156115632Z" -creator: insta@0.8.1 -source: crates/ra_ide_api/src/completion/completion_item.rs -expression: kind_completions ---- -[ - CompletionItem { - label: "main", - source_range: [53; 56), - delete: [53; 56), - insert: "main()$0", - kind: Function, - detail: "fn main()", - }, - CompletionItem { - label: "no_args", - source_range: [53; 56), - delete: [53; 56), - insert: "no_args()$0", - kind: Function, - detail: "fn no_args()", - }, -] diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls2.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls2.snap deleted file mode 100644 index b49a838e0e5..00000000000 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls2.snap +++ /dev/null @@ -1,24 +0,0 @@ ---- -created: "2019-05-23T22:44:10.916806744Z" -creator: insta@0.8.1 -source: crates/ra_ide_api/src/completion/completion_item.rs -expression: kind_completions ---- -[ - CompletionItem { - label: "main", - source_range: [72; 77), - delete: [72; 77), - insert: "main()$0", - kind: Function, - detail: "fn main()", - }, - CompletionItem { - label: "with_args", - source_range: [72; 77), - delete: [72; 77), - insert: "with_args($0)", - kind: Function, - detail: "fn with_args(x: i32, y: String)", - }, -] diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls3.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls3.snap deleted file mode 100644 index b62cb7aa126..00000000000 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls3.snap +++ /dev/null @@ -1,16 +0,0 @@ ---- -created: "2019-05-23T22:44:40.543731193Z" -creator: insta@0.8.1 -source: crates/ra_ide_api/src/completion/completion_item.rs -expression: kind_completions ---- -[ - CompletionItem { - label: "foo", - source_range: [139; 140), - delete: [139; 140), - insert: "foo()$0", - kind: Method, - detail: "fn foo(&self)", - }, -] From 69244a6e18b3b53afaa0ee8073af52d93b983a86 Mon Sep 17 00:00:00 2001 From: Phil Ellison Date: Sun, 28 Jul 2019 11:45:03 +0100 Subject: [PATCH 04/12] Inline snapshots for all tests in complete_snippet, remove now-unused check_completion --- crates/ra_ide_api/src/completion.rs | 2 +- .../src/completion/complete_snippet.rs | 75 ++++++++++++++----- .../src/completion/completion_item.rs | 7 -- ..._should_not_complete_snippets_in_path.snap | 5 -- ...should_not_complete_snippets_in_path2.snap | 5 -- ...pletion_item__snippets_in_expressions.snap | 22 ------ .../completion_item__snippets_in_items.snap | 23 ------ 7 files changed, 58 insertions(+), 81 deletions(-) delete mode 100644 crates/ra_ide_api/src/completion/snapshots/completion_item__should_not_complete_snippets_in_path.snap delete mode 100644 crates/ra_ide_api/src/completion/snapshots/completion_item__should_not_complete_snippets_in_path2.snap delete mode 100644 crates/ra_ide_api/src/completion/snapshots/completion_item__snippets_in_expressions.snap delete mode 100644 crates/ra_ide_api/src/completion/snapshots/completion_item__snippets_in_items.snap diff --git a/crates/ra_ide_api/src/completion.rs b/crates/ra_ide_api/src/completion.rs index 85160358aee..a6b68be75ec 100644 --- a/crates/ra_ide_api/src/completion.rs +++ b/crates/ra_ide_api/src/completion.rs @@ -16,7 +16,7 @@ mod complete_postfix; use ra_db::SourceDatabase; #[cfg(test)] -use crate::completion::completion_item::{check_completion, do_completion}; +use crate::completion::completion_item::do_completion; use crate::{ completion::{ completion_context::CompletionContext, diff --git a/crates/ra_ide_api/src/completion/complete_snippet.rs b/crates/ra_ide_api/src/completion/complete_snippet.rs index d2d364b57b1..063b6931921 100644 --- a/crates/ra_ide_api/src/completion/complete_snippet.rs +++ b/crates/ra_ide_api/src/completion/complete_snippet.rs @@ -39,39 +39,78 @@ fn ${1:feature}() { #[cfg(test)] mod tests { - use crate::completion::{check_completion, CompletionKind}; + use crate::completion::{do_completion, CompletionItem, CompletionKind}; + use insta::assert_debug_snapshot_matches; - fn check_snippet_completion(name: &str, code: &str) { - check_completion(name, code, CompletionKind::Snippet); + fn do_snippet_completion(code: &str) -> Vec { + do_completion(code, CompletionKind::Snippet) } #[test] fn completes_snippets_in_expressions() { - check_snippet_completion("snippets_in_expressions", r"fn foo(x: i32) { <|> }"); + assert_debug_snapshot_matches!( + do_snippet_completion(r"fn foo(x: i32) { <|> }"), +@r#"[ + CompletionItem { + label: "pd", + source_range: [17; 17), + delete: [17; 17), + insert: "eprintln!(\"$0 = {:?}\", $0);", + kind: Snippet, + }, + CompletionItem { + label: "ppd", + source_range: [17; 17), + delete: [17; 17), + insert: "eprintln!(\"$0 = {:#?}\", $0);", + kind: Snippet, + }, +]"# + ); } #[test] fn should_not_complete_snippets_in_path() { - check_snippet_completion( - "should_not_complete_snippets_in_path", - r"fn foo(x: i32) { ::foo<|> }", + assert_debug_snapshot_matches!( + do_snippet_completion(r"fn foo(x: i32) { ::foo<|> }"), +@r#"[]"# ); - check_snippet_completion( - "should_not_complete_snippets_in_path2", - r"fn foo(x: i32) { ::<|> }", + assert_debug_snapshot_matches!( + do_snippet_completion(r"fn foo(x: i32) { ::<|> }"), +@r#"[]"# ); } #[test] fn completes_snippets_in_items() { - check_snippet_completion( - "snippets_in_items", - r" - #[cfg(test)] - mod tests { - <|> - } - ", + assert_debug_snapshot_matches!( + do_snippet_completion( + r" + #[cfg(test)] + mod tests { + <|> + } + " + ), +@r###" + ⋮[ + ⋮ CompletionItem { + ⋮ label: "Test function", + ⋮ source_range: [78; 78), + ⋮ delete: [78; 78), + ⋮ insert: "#[test]\nfn ${1:feature}() {\n $0\n}", + ⋮ kind: Snippet, + ⋮ lookup: "tfn", + ⋮ }, + ⋮ CompletionItem { + ⋮ label: "pub(crate)", + ⋮ source_range: [78; 78), + ⋮ delete: [78; 78), + ⋮ insert: "pub(crate) $0", + ⋮ kind: Snippet, + ⋮ }, + ⋮] + "### ); } } diff --git a/crates/ra_ide_api/src/completion/completion_item.rs b/crates/ra_ide_api/src/completion/completion_item.rs index f78c4c8772f..d787bb69ed0 100644 --- a/crates/ra_ide_api/src/completion/completion_item.rs +++ b/crates/ra_ide_api/src/completion/completion_item.rs @@ -299,10 +299,3 @@ pub(crate) fn do_completion(code: &str, kind: CompletionKind) -> Vec Date: Sun, 28 Jul 2019 11:52:17 +0100 Subject: [PATCH 05/12] Inline snapshots for all tests in references.rs --- crates/ra_ide_api/src/references.rs | 34 ++++++++++++++++- .../src/snapshots/tests__rename_mod.snap | 38 ------------------- 2 files changed, 33 insertions(+), 39 deletions(-) delete mode 100644 crates/ra_ide_api/src/snapshots/tests__rename_mod.snap diff --git a/crates/ra_ide_api/src/references.rs b/crates/ra_ide_api/src/references.rs index 9b9f75af0bf..9e2601f83a5 100644 --- a/crates/ra_ide_api/src/references.rs +++ b/crates/ra_ide_api/src/references.rs @@ -341,7 +341,39 @@ mod tests { ); let new_name = "foo2"; let source_change = analysis.rename(position, new_name).unwrap(); - assert_debug_snapshot_matches!("rename_mod", &source_change); + assert_debug_snapshot_matches!(&source_change, +@r#"Some( + SourceChange { + label: "rename", + source_file_edits: [ + SourceFileEdit { + file_id: FileId( + 2, + ), + edit: TextEdit { + atoms: [ + AtomTextEdit { + delete: [4; 7), + insert: "foo2", + }, + ], + }, + }, + ], + file_system_edits: [ + MoveFile { + src: FileId( + 3, + ), + dst_source_root: SourceRootId( + 0, + ), + dst_path: "bar/foo2.rs", + }, + ], + cursor_position: None, + }, +)"#); } #[test] diff --git a/crates/ra_ide_api/src/snapshots/tests__rename_mod.snap b/crates/ra_ide_api/src/snapshots/tests__rename_mod.snap deleted file mode 100644 index 431de5c5591..00000000000 --- a/crates/ra_ide_api/src/snapshots/tests__rename_mod.snap +++ /dev/null @@ -1,38 +0,0 @@ ---- -created: "2019-05-23T22:23:35.215905447Z" -creator: insta@0.8.1 -source: crates/ra_ide_api/src/references.rs -expression: "&source_change" ---- -Some( - SourceChange { - label: "rename", - source_file_edits: [ - SourceFileEdit { - file_id: FileId( - 2, - ), - edit: TextEdit { - atoms: [ - AtomTextEdit { - delete: [4; 7), - insert: "foo2", - }, - ], - }, - }, - ], - file_system_edits: [ - MoveFile { - src: FileId( - 3, - ), - dst_source_root: SourceRootId( - 0, - ), - dst_path: "bar/foo2.rs", - }, - ], - cursor_position: None, - }, -) From a72331f223a120101f6edac51962ac7b2aa48cde Mon Sep 17 00:00:00 2001 From: Phil Ellison Date: Sun, 28 Jul 2019 11:57:56 +0100 Subject: [PATCH 06/12] Inline snapshots for all tests in runnables.rs --- crates/ra_ide_api/src/runnables.rs | 72 +++++++++++++++++-- .../src/snapshots/tests__runnables.snap | 24 ------- .../snapshots/tests__runnables_module.snap | 20 ------ ...ests__runnables_multiple_depth_module.snap | 20 ------ ...sts__runnables_one_depth_layer_module.snap | 20 ------ 5 files changed, 68 insertions(+), 88 deletions(-) delete mode 100644 crates/ra_ide_api/src/snapshots/tests__runnables.snap delete mode 100644 crates/ra_ide_api/src/snapshots/tests__runnables_module.snap delete mode 100644 crates/ra_ide_api/src/snapshots/tests__runnables_multiple_depth_module.snap delete mode 100644 crates/ra_ide_api/src/snapshots/tests__runnables_one_depth_layer_module.snap diff --git a/crates/ra_ide_api/src/runnables.rs b/crates/ra_ide_api/src/runnables.rs index 07412a9efd9..7a3a574ad4d 100644 --- a/crates/ra_ide_api/src/runnables.rs +++ b/crates/ra_ide_api/src/runnables.rs @@ -92,7 +92,26 @@ mod tests { "#, ); let runnables = analysis.runnables(pos.file_id).unwrap(); - assert_debug_snapshot_matches!("runnables", &runnables) + assert_debug_snapshot_matches!(&runnables, +@r#"[ + Runnable { + range: [1; 21), + kind: Bin, + }, + Runnable { + range: [22; 46), + kind: Test { + name: "test_foo", + }, + }, + Runnable { + range: [47; 81), + kind: Test { + name: "test_foo", + }, + }, +]"# + ); } #[test] @@ -108,7 +127,22 @@ mod tests { "#, ); let runnables = analysis.runnables(pos.file_id).unwrap(); - assert_debug_snapshot_matches!("runnables_module", &runnables) + assert_debug_snapshot_matches!(&runnables, +@r#"[ + Runnable { + range: [1; 59), + kind: TestMod { + path: "test_mod", + }, + }, + Runnable { + range: [28; 57), + kind: Test { + name: "test_foo1", + }, + }, +]"# + ); } #[test] @@ -126,7 +160,22 @@ mod tests { "#, ); let runnables = analysis.runnables(pos.file_id).unwrap(); - assert_debug_snapshot_matches!("runnables_one_depth_layer_module", &runnables) + assert_debug_snapshot_matches!(&runnables, +@r#"[ + Runnable { + range: [23; 85), + kind: TestMod { + path: "foo::test_mod", + }, + }, + Runnable { + range: [46; 79), + kind: Test { + name: "test_foo1", + }, + }, +]"# + ); } #[test] @@ -146,7 +195,22 @@ mod tests { "#, ); let runnables = analysis.runnables(pos.file_id).unwrap(); - assert_debug_snapshot_matches!("runnables_multiple_depth_module", &runnables) + assert_debug_snapshot_matches!(&runnables, +@r#"[ + Runnable { + range: [41; 115), + kind: TestMod { + path: "foo::bar::test_mod", + }, + }, + Runnable { + range: [68; 105), + kind: Test { + name: "test_foo1", + }, + }, +]"# + ); } #[test] diff --git a/crates/ra_ide_api/src/snapshots/tests__runnables.snap b/crates/ra_ide_api/src/snapshots/tests__runnables.snap deleted file mode 100644 index de2fadd7f54..00000000000 --- a/crates/ra_ide_api/src/snapshots/tests__runnables.snap +++ /dev/null @@ -1,24 +0,0 @@ ---- -created: "2019-05-23T22:23:35.217100106Z" -creator: insta@0.8.1 -source: crates/ra_ide_api/src/runnables.rs -expression: "&runnables" ---- -[ - Runnable { - range: [1; 21), - kind: Bin, - }, - Runnable { - range: [22; 46), - kind: Test { - name: "test_foo", - }, - }, - Runnable { - range: [47; 81), - kind: Test { - name: "test_foo", - }, - }, -] diff --git a/crates/ra_ide_api/src/snapshots/tests__runnables_module.snap b/crates/ra_ide_api/src/snapshots/tests__runnables_module.snap deleted file mode 100644 index 23993a97f0f..00000000000 --- a/crates/ra_ide_api/src/snapshots/tests__runnables_module.snap +++ /dev/null @@ -1,20 +0,0 @@ ---- -created: "2019-05-23T22:23:35.219258850Z" -creator: insta@0.8.1 -source: crates/ra_ide_api/src/runnables.rs -expression: "&runnables" ---- -[ - Runnable { - range: [1; 59), - kind: TestMod { - path: "test_mod", - }, - }, - Runnable { - range: [28; 57), - kind: Test { - name: "test_foo1", - }, - }, -] diff --git a/crates/ra_ide_api/src/snapshots/tests__runnables_multiple_depth_module.snap b/crates/ra_ide_api/src/snapshots/tests__runnables_multiple_depth_module.snap deleted file mode 100644 index c516a61dfc1..00000000000 --- a/crates/ra_ide_api/src/snapshots/tests__runnables_multiple_depth_module.snap +++ /dev/null @@ -1,20 +0,0 @@ ---- -created: "2019-05-23T22:23:35.219671663Z" -creator: insta@0.8.1 -source: crates/ra_ide_api/src/runnables.rs -expression: "&runnables" ---- -[ - Runnable { - range: [41; 115), - kind: TestMod { - path: "foo::bar::test_mod", - }, - }, - Runnable { - range: [68; 105), - kind: Test { - name: "test_foo1", - }, - }, -] diff --git a/crates/ra_ide_api/src/snapshots/tests__runnables_one_depth_layer_module.snap b/crates/ra_ide_api/src/snapshots/tests__runnables_one_depth_layer_module.snap deleted file mode 100644 index b02e6707ef2..00000000000 --- a/crates/ra_ide_api/src/snapshots/tests__runnables_one_depth_layer_module.snap +++ /dev/null @@ -1,20 +0,0 @@ ---- -created: "2019-05-23T22:23:35.224315047Z" -creator: insta@0.8.1 -source: crates/ra_ide_api/src/runnables.rs -expression: "&runnables" ---- -[ - Runnable { - range: [23; 85), - kind: TestMod { - path: "foo::test_mod", - }, - }, - Runnable { - range: [46; 79), - kind: Test { - name: "test_foo1", - }, - }, -] From 9f6909c0ce678e738a39789687af8a12e02d0be1 Mon Sep 17 00:00:00 2001 From: Phil Ellison Date: Sun, 28 Jul 2019 12:01:28 +0100 Subject: [PATCH 07/12] Inline snapshot for test_file_structure (less clear that this one is a good idea) --- .../snapshots/tests__file_structure.snap | 191 ------------------ crates/ra_ide_api/src/display/structure.rs | 188 ++++++++++++++++- 2 files changed, 187 insertions(+), 192 deletions(-) delete mode 100644 crates/ra_ide_api/src/display/snapshots/tests__file_structure.snap diff --git a/crates/ra_ide_api/src/display/snapshots/tests__file_structure.snap b/crates/ra_ide_api/src/display/snapshots/tests__file_structure.snap deleted file mode 100644 index 102efc02675..00000000000 --- a/crates/ra_ide_api/src/display/snapshots/tests__file_structure.snap +++ /dev/null @@ -1,191 +0,0 @@ ---- -created: "2019-06-28T20:46:18.274464142Z" -creator: insta@0.8.1 -source: crates/ra_ide_api/src/display/structure.rs -expression: structure ---- -[ - StructureNode { - parent: None, - label: "Foo", - navigation_range: [8; 11), - node_range: [1; 26), - kind: STRUCT_DEF, - detail: None, - deprecated: false, - }, - StructureNode { - parent: Some( - 0, - ), - label: "x", - navigation_range: [18; 19), - node_range: [18; 24), - kind: NAMED_FIELD_DEF, - detail: Some( - "i32", - ), - deprecated: false, - }, - StructureNode { - parent: None, - label: "m", - navigation_range: [32; 33), - node_range: [28; 158), - kind: MODULE, - detail: None, - deprecated: false, - }, - StructureNode { - parent: Some( - 2, - ), - label: "bar1", - navigation_range: [43; 47), - node_range: [40; 52), - kind: FN_DEF, - detail: Some( - "fn()", - ), - deprecated: false, - }, - StructureNode { - parent: Some( - 2, - ), - label: "bar2", - navigation_range: [60; 64), - node_range: [57; 81), - kind: FN_DEF, - detail: Some( - "fn(t: T) -> T", - ), - deprecated: false, - }, - StructureNode { - parent: Some( - 2, - ), - label: "bar3", - navigation_range: [89; 93), - node_range: [86; 156), - kind: FN_DEF, - detail: Some( - "fn(a: A, b: B) -> Vec< u32 >", - ), - deprecated: false, - }, - StructureNode { - parent: None, - label: "E", - navigation_range: [165; 166), - node_range: [160; 180), - kind: ENUM_DEF, - detail: None, - deprecated: false, - }, - StructureNode { - parent: Some( - 6, - ), - label: "X", - navigation_range: [169; 170), - node_range: [169; 170), - kind: ENUM_VARIANT, - detail: None, - deprecated: false, - }, - StructureNode { - parent: Some( - 6, - ), - label: "Y", - navigation_range: [172; 173), - node_range: [172; 178), - kind: ENUM_VARIANT, - detail: None, - deprecated: false, - }, - StructureNode { - parent: None, - label: "T", - navigation_range: [186; 187), - node_range: [181; 193), - kind: TYPE_ALIAS_DEF, - detail: Some( - "()", - ), - deprecated: false, - }, - StructureNode { - parent: None, - label: "S", - navigation_range: [201; 202), - node_range: [194; 213), - kind: STATIC_DEF, - detail: Some( - "i32", - ), - deprecated: false, - }, - StructureNode { - parent: None, - label: "C", - navigation_range: [220; 221), - node_range: [214; 232), - kind: CONST_DEF, - detail: Some( - "i32", - ), - deprecated: false, - }, - StructureNode { - parent: None, - label: "impl E", - navigation_range: [239; 240), - node_range: [234; 243), - kind: IMPL_BLOCK, - detail: None, - deprecated: false, - }, - StructureNode { - parent: None, - label: "impl fmt::Debug for E", - navigation_range: [265; 266), - node_range: [245; 269), - kind: IMPL_BLOCK, - detail: None, - deprecated: false, - }, - StructureNode { - parent: None, - label: "mc", - navigation_range: [284; 286), - node_range: [271; 303), - kind: MACRO_CALL, - detail: None, - deprecated: false, - }, - StructureNode { - parent: None, - label: "obsolete", - navigation_range: [322; 330), - node_range: [305; 335), - kind: FN_DEF, - detail: Some( - "fn()", - ), - deprecated: true, - }, - StructureNode { - parent: None, - label: "very_obsolete", - navigation_range: [375; 388), - node_range: [337; 393), - kind: FN_DEF, - detail: Some( - "fn()", - ), - deprecated: true, - }, -] diff --git a/crates/ra_ide_api/src/display/structure.rs b/crates/ra_ide_api/src/display/structure.rs index 2ba10b2ef34..38e1fe3237a 100644 --- a/crates/ra_ide_api/src/display/structure.rs +++ b/crates/ra_ide_api/src/display/structure.rs @@ -204,6 +204,192 @@ fn very_obsolete() {} .ok() .unwrap(); let structure = file_structure(&file); - assert_debug_snapshot_matches!("file_structure", structure); + assert_debug_snapshot_matches!(structure, +@r#"[ + StructureNode { + parent: None, + label: "Foo", + navigation_range: [8; 11), + node_range: [1; 26), + kind: STRUCT_DEF, + detail: None, + deprecated: false, + }, + StructureNode { + parent: Some( + 0, + ), + label: "x", + navigation_range: [18; 19), + node_range: [18; 24), + kind: NAMED_FIELD_DEF, + detail: Some( + "i32", + ), + deprecated: false, + }, + StructureNode { + parent: None, + label: "m", + navigation_range: [32; 33), + node_range: [28; 158), + kind: MODULE, + detail: None, + deprecated: false, + }, + StructureNode { + parent: Some( + 2, + ), + label: "bar1", + navigation_range: [43; 47), + node_range: [40; 52), + kind: FN_DEF, + detail: Some( + "fn()", + ), + deprecated: false, + }, + StructureNode { + parent: Some( + 2, + ), + label: "bar2", + navigation_range: [60; 64), + node_range: [57; 81), + kind: FN_DEF, + detail: Some( + "fn(t: T) -> T", + ), + deprecated: false, + }, + StructureNode { + parent: Some( + 2, + ), + label: "bar3", + navigation_range: [89; 93), + node_range: [86; 156), + kind: FN_DEF, + detail: Some( + "fn(a: A, b: B) -> Vec< u32 >", + ), + deprecated: false, + }, + StructureNode { + parent: None, + label: "E", + navigation_range: [165; 166), + node_range: [160; 180), + kind: ENUM_DEF, + detail: None, + deprecated: false, + }, + StructureNode { + parent: Some( + 6, + ), + label: "X", + navigation_range: [169; 170), + node_range: [169; 170), + kind: ENUM_VARIANT, + detail: None, + deprecated: false, + }, + StructureNode { + parent: Some( + 6, + ), + label: "Y", + navigation_range: [172; 173), + node_range: [172; 178), + kind: ENUM_VARIANT, + detail: None, + deprecated: false, + }, + StructureNode { + parent: None, + label: "T", + navigation_range: [186; 187), + node_range: [181; 193), + kind: TYPE_ALIAS_DEF, + detail: Some( + "()", + ), + deprecated: false, + }, + StructureNode { + parent: None, + label: "S", + navigation_range: [201; 202), + node_range: [194; 213), + kind: STATIC_DEF, + detail: Some( + "i32", + ), + deprecated: false, + }, + StructureNode { + parent: None, + label: "C", + navigation_range: [220; 221), + node_range: [214; 232), + kind: CONST_DEF, + detail: Some( + "i32", + ), + deprecated: false, + }, + StructureNode { + parent: None, + label: "impl E", + navigation_range: [239; 240), + node_range: [234; 243), + kind: IMPL_BLOCK, + detail: None, + deprecated: false, + }, + StructureNode { + parent: None, + label: "impl fmt::Debug for E", + navigation_range: [265; 266), + node_range: [245; 269), + kind: IMPL_BLOCK, + detail: None, + deprecated: false, + }, + StructureNode { + parent: None, + label: "mc", + navigation_range: [284; 286), + node_range: [271; 303), + kind: MACRO_CALL, + detail: None, + deprecated: false, + }, + StructureNode { + parent: None, + label: "obsolete", + navigation_range: [322; 330), + node_range: [305; 335), + kind: FN_DEF, + detail: Some( + "fn()", + ), + deprecated: true, + }, + StructureNode { + parent: None, + label: "very_obsolete", + navigation_range: [375; 388), + node_range: [337; 393), + kind: FN_DEF, + detail: Some( + "fn()", + ), + deprecated: true, + }, +]"# + ); } } From 5c4df97996ac88133c12069debff1f86d3a9f7cb Mon Sep 17 00:00:00 2001 From: Phil Ellison Date: Sun, 28 Jul 2019 12:08:06 +0100 Subject: [PATCH 08/12] cargo format --- .../src/completion/complete_scope.rs | 118 +++++++++--------- .../src/completion/complete_snippet.rs | 30 ++--- .../ra_ide_api/src/completion/presentation.rs | 64 +++++----- crates/ra_ide_api/src/display/structure.rs | 4 +- crates/ra_ide_api/src/runnables.rs | 18 +-- 5 files changed, 117 insertions(+), 117 deletions(-) diff --git a/crates/ra_ide_api/src/completion/complete_scope.rs b/crates/ra_ide_api/src/completion/complete_scope.rs index 1baa5227acb..07c2e5f9417 100644 --- a/crates/ra_ide_api/src/completion/complete_scope.rs +++ b/crates/ra_ide_api/src/completion/complete_scope.rs @@ -122,7 +122,7 @@ impl ImportResolver { #[cfg(test)] mod tests { use crate::completion::{do_completion, CompletionItem, CompletionKind}; - use insta::assert_debug_snapshot_matches; + use insta::assert_debug_snapshot_matches; fn do_reference_completion(code: &str) -> Vec { do_completion(code, CompletionKind::Reference) @@ -131,16 +131,16 @@ mod tests { #[test] fn completes_bindings_from_let() { assert_debug_snapshot_matches!( - do_reference_completion( - r" + do_reference_completion( + r" fn quux(x: i32) { let y = 92; 1 + <|>; let z = (); } " - ), -@r###" + ), + @r###" ⋮[ ⋮ CompletionItem { ⋮ label: "quux", @@ -168,14 +168,14 @@ mod tests { ⋮ }, ⋮] "### - ); + ); } #[test] fn completes_bindings_from_if_let() { assert_debug_snapshot_matches!( - do_reference_completion( - r" + do_reference_completion( + r" fn quux() { if let Some(x) = foo() { let y = 92; @@ -186,8 +186,8 @@ mod tests { } } " - ), -@r###" + ), + @r###" ⋮[ ⋮ CompletionItem { ⋮ label: "a", @@ -214,22 +214,22 @@ mod tests { ⋮ }, ⋮] "### - ); + ); } #[test] fn completes_bindings_from_for() { assert_debug_snapshot_matches!( - do_reference_completion( - r" + do_reference_completion( + r" fn quux() { for x in &[1, 2, 3] { <|> } } " - ), -@r###" + ), + @r###" ⋮[ ⋮ CompletionItem { ⋮ label: "quux", @@ -248,20 +248,20 @@ mod tests { ⋮ }, ⋮] "### - ); + ); } #[test] fn completes_generic_params() { assert_debug_snapshot_matches!( - do_reference_completion( - r" + do_reference_completion( + r" fn quux() { <|> } " - ), -@r###" + ), + @r###" ⋮[ ⋮ CompletionItem { ⋮ label: "T", @@ -280,20 +280,20 @@ mod tests { ⋮ }, ⋮] "### - ); + ); } #[test] fn completes_generic_params_in_struct() { assert_debug_snapshot_matches!( - do_reference_completion( - r" + do_reference_completion( + r" struct X { x: <|> } " - ), -@r###" + ), + @r###" ⋮[ ⋮ CompletionItem { ⋮ label: "T", @@ -311,22 +311,22 @@ mod tests { ⋮ }, ⋮] "### - ); + ); } #[test] fn completes_module_items() { assert_debug_snapshot_matches!( - do_reference_completion( - r" + do_reference_completion( + r" struct Foo; enum Baz {} fn quux() { <|> } " - ), -@r###" + ), + @r###" ⋮[ ⋮ CompletionItem { ⋮ label: "Baz", @@ -352,22 +352,22 @@ mod tests { ⋮ }, ⋮] "### - ); + ); } #[test] fn completes_extern_prelude() { assert_debug_snapshot_matches!( - do_reference_completion( - r" + do_reference_completion( + r" //- /lib.rs use <|>; //- /other_crate/lib.rs // nothing here " - ), -@r#"[ + ), + @r#"[ CompletionItem { label: "other_crate", source_range: [4; 4), @@ -376,22 +376,22 @@ mod tests { kind: Module, }, ]"# - ); + ); } #[test] fn completes_module_items_in_nested_modules() { assert_debug_snapshot_matches!( - do_reference_completion( - r" + do_reference_completion( + r" struct Foo; mod m { struct Bar; fn quux() { <|> } } " - ), -@r###" + ), + @r###" ⋮[ ⋮ CompletionItem { ⋮ label: "Bar", @@ -410,19 +410,19 @@ mod tests { ⋮ }, ⋮] "### - ); + ); } #[test] fn completes_return_type() { assert_debug_snapshot_matches!( - do_reference_completion( - r" + do_reference_completion( + r" struct Foo; fn x() -> <|> " - ), -@r###" + ), + @r###" ⋮[ ⋮ CompletionItem { ⋮ label: "Foo", @@ -441,14 +441,14 @@ mod tests { ⋮ }, ⋮] "### - ); + ); } #[test] fn dont_show_both_completions_for_shadowing() { assert_debug_snapshot_matches!( - do_reference_completion( - r" + do_reference_completion( + r" fn foo() { let bar = 92; { @@ -457,8 +457,8 @@ mod tests { } } " - ), -@r###" + ), + @r###" ⋮[ ⋮ CompletionItem { ⋮ label: "bar", @@ -478,14 +478,14 @@ mod tests { ⋮ }, ⋮] "### - ); + ); } #[test] fn completes_self_in_methods() { assert_debug_snapshot_matches!( - do_reference_completion(r"impl S { fn foo(&self) { <|> } }"), -@r#"[ + do_reference_completion(r"impl S { fn foo(&self) { <|> } }"), + @r#"[ CompletionItem { label: "Self", source_range: [25; 25), @@ -502,14 +502,14 @@ mod tests { detail: "&{unknown}", }, ]"# - ); + ); } #[test] fn completes_prelude() { assert_debug_snapshot_matches!( - do_reference_completion( - " + do_reference_completion( + " //- /main.rs fn foo() { let x: <|> } @@ -521,8 +521,8 @@ mod tests { struct Option; } " - ), -@r#"[ + ), + @r#"[ CompletionItem { label: "Option", source_range: [18; 18), @@ -546,6 +546,6 @@ mod tests { kind: Module, }, ]"# - ); + ); } } diff --git a/crates/ra_ide_api/src/completion/complete_snippet.rs b/crates/ra_ide_api/src/completion/complete_snippet.rs index 063b6931921..e0368b3b224 100644 --- a/crates/ra_ide_api/src/completion/complete_snippet.rs +++ b/crates/ra_ide_api/src/completion/complete_snippet.rs @@ -40,7 +40,7 @@ fn ${1:feature}() { #[cfg(test)] mod tests { use crate::completion::{do_completion, CompletionItem, CompletionKind}; - use insta::assert_debug_snapshot_matches; + use insta::assert_debug_snapshot_matches; fn do_snippet_completion(code: &str) -> Vec { do_completion(code, CompletionKind::Snippet) @@ -49,8 +49,8 @@ mod tests { #[test] fn completes_snippets_in_expressions() { assert_debug_snapshot_matches!( - do_snippet_completion(r"fn foo(x: i32) { <|> }"), -@r#"[ + do_snippet_completion(r"fn foo(x: i32) { <|> }"), + @r#"[ CompletionItem { label: "pd", source_range: [17; 17), @@ -66,33 +66,33 @@ mod tests { kind: Snippet, }, ]"# - ); + ); } #[test] fn should_not_complete_snippets_in_path() { assert_debug_snapshot_matches!( - do_snippet_completion(r"fn foo(x: i32) { ::foo<|> }"), -@r#"[]"# - ); + do_snippet_completion(r"fn foo(x: i32) { ::foo<|> }"), + @r#"[]"# + ); assert_debug_snapshot_matches!( - do_snippet_completion(r"fn foo(x: i32) { ::<|> }"), -@r#"[]"# - ); + do_snippet_completion(r"fn foo(x: i32) { ::<|> }"), + @r#"[]"# + ); } #[test] fn completes_snippets_in_items() { assert_debug_snapshot_matches!( - do_snippet_completion( - r" + do_snippet_completion( + r" #[cfg(test)] mod tests { <|> } " - ), -@r###" + ), + @r###" ⋮[ ⋮ CompletionItem { ⋮ label: "Test function", @@ -111,6 +111,6 @@ mod tests { ⋮ }, ⋮] "### - ); + ); } } diff --git a/crates/ra_ide_api/src/completion/presentation.rs b/crates/ra_ide_api/src/completion/presentation.rs index fe7581adfd2..5df19990ca0 100644 --- a/crates/ra_ide_api/src/completion/presentation.rs +++ b/crates/ra_ide_api/src/completion/presentation.rs @@ -182,9 +182,9 @@ impl Completions { #[cfg(test)] mod tests { - use test_utils::covers; use crate::completion::{do_completion, CompletionItem, CompletionKind}; - use insta::assert_debug_snapshot_matches; + use insta::assert_debug_snapshot_matches; + use test_utils::covers; fn do_reference_completion(code: &str) -> Vec { do_completion(code, CompletionKind::Reference) @@ -194,13 +194,13 @@ mod tests { fn inserts_parens_for_function_calls() { covers!(inserts_parens_for_function_calls); assert_debug_snapshot_matches!( - do_reference_completion( - r" + do_reference_completion( + r" fn no_args() {} fn main() { no_<|> } " - ), -@r###" + ), + @r###" ⋮[ ⋮ CompletionItem { ⋮ label: "main", @@ -220,15 +220,15 @@ mod tests { ⋮ }, ⋮] "### - ); + ); assert_debug_snapshot_matches!( - do_reference_completion( - r" + do_reference_completion( + r" fn with_args(x: i32, y: String) {} fn main() { with_<|> } " - ), -@r###" + ), + @r###" ⋮[ ⋮ CompletionItem { ⋮ label: "main", @@ -248,10 +248,10 @@ mod tests { ⋮ }, ⋮] "### - ); + ); assert_debug_snapshot_matches!( - do_reference_completion( - r" + do_reference_completion( + r" struct S {} impl S { fn foo(&self) {} @@ -260,8 +260,8 @@ mod tests { s.f<|> } " - ), -@r###" + ), + @r###" ⋮[ ⋮ CompletionItem { ⋮ label: "foo", @@ -273,20 +273,20 @@ mod tests { ⋮ }, ⋮] "### - ); + ); } #[test] fn dont_render_function_parens_in_use_item() { assert_debug_snapshot_matches!( - do_reference_completion( - " + do_reference_completion( + " //- /lib.rs mod m { pub fn foo() {} } use crate::m::f<|>; " - ), -@r#"[ + ), + @r#"[ CompletionItem { label: "foo", source_range: [40; 41), @@ -296,22 +296,22 @@ mod tests { detail: "pub fn foo()", }, ]"# - ); + ); } #[test] fn dont_render_function_parens_if_already_call() { assert_debug_snapshot_matches!( - do_reference_completion( - " + do_reference_completion( + " //- /lib.rs fn frobnicate() {} fn main() { frob<|>(); } " - ), -@r#"[ + ), + @r#"[ CompletionItem { label: "frobnicate", source_range: [35; 39), @@ -329,10 +329,10 @@ mod tests { detail: "fn main()", }, ]"# - ); + ); assert_debug_snapshot_matches!( - do_reference_completion( - " + do_reference_completion( + " //- /lib.rs struct Foo {} impl Foo { fn new() -> Foo {} } @@ -340,8 +340,8 @@ mod tests { Foo::ne<|>(); } " - ), -@r#"[ + ), + @r#"[ CompletionItem { label: "new", source_range: [67; 69), @@ -351,6 +351,6 @@ mod tests { detail: "fn new() -> Foo", }, ]"# - ); + ); } } diff --git a/crates/ra_ide_api/src/display/structure.rs b/crates/ra_ide_api/src/display/structure.rs index 38e1fe3237a..b026dfa59df 100644 --- a/crates/ra_ide_api/src/display/structure.rs +++ b/crates/ra_ide_api/src/display/structure.rs @@ -205,7 +205,7 @@ fn very_obsolete() {} .unwrap(); let structure = file_structure(&file); assert_debug_snapshot_matches!(structure, -@r#"[ + @r#"[ StructureNode { parent: None, label: "Foo", @@ -390,6 +390,6 @@ fn very_obsolete() {} deprecated: true, }, ]"# - ); + ); } } diff --git a/crates/ra_ide_api/src/runnables.rs b/crates/ra_ide_api/src/runnables.rs index 7a3a574ad4d..09c082de9cf 100644 --- a/crates/ra_ide_api/src/runnables.rs +++ b/crates/ra_ide_api/src/runnables.rs @@ -93,7 +93,7 @@ mod tests { ); let runnables = analysis.runnables(pos.file_id).unwrap(); assert_debug_snapshot_matches!(&runnables, -@r#"[ + @r#"[ Runnable { range: [1; 21), kind: Bin, @@ -111,7 +111,7 @@ mod tests { }, }, ]"# - ); + ); } #[test] @@ -127,8 +127,8 @@ mod tests { "#, ); let runnables = analysis.runnables(pos.file_id).unwrap(); - assert_debug_snapshot_matches!(&runnables, -@r#"[ + assert_debug_snapshot_matches!(&runnables, + @r#"[ Runnable { range: [1; 59), kind: TestMod { @@ -142,7 +142,7 @@ mod tests { }, }, ]"# - ); + ); } #[test] @@ -161,7 +161,7 @@ mod tests { ); let runnables = analysis.runnables(pos.file_id).unwrap(); assert_debug_snapshot_matches!(&runnables, -@r#"[ + @r#"[ Runnable { range: [23; 85), kind: TestMod { @@ -175,7 +175,7 @@ mod tests { }, }, ]"# - ); + ); } #[test] @@ -196,7 +196,7 @@ mod tests { ); let runnables = analysis.runnables(pos.file_id).unwrap(); assert_debug_snapshot_matches!(&runnables, -@r#"[ + @r#"[ Runnable { range: [41; 115), kind: TestMod { @@ -210,7 +210,7 @@ mod tests { }, }, ]"# - ); + ); } #[test] From 46c07ed57898251cd2821e41a3162d0c2d2e36d5 Mon Sep 17 00:00:00 2001 From: Phil Ellison Date: Sun, 28 Jul 2019 12:28:14 +0100 Subject: [PATCH 09/12] Remove vertical ellipses from tests in complete_scope.rs --- .../src/completion/complete_scope.rs | 468 +++++++++--------- 1 file changed, 225 insertions(+), 243 deletions(-) diff --git a/crates/ra_ide_api/src/completion/complete_scope.rs b/crates/ra_ide_api/src/completion/complete_scope.rs index 07c2e5f9417..079ecfacc28 100644 --- a/crates/ra_ide_api/src/completion/complete_scope.rs +++ b/crates/ra_ide_api/src/completion/complete_scope.rs @@ -131,51 +131,49 @@ mod tests { #[test] fn completes_bindings_from_let() { assert_debug_snapshot_matches!( - do_reference_completion( - r" + do_reference_completion( + r" fn quux(x: i32) { let y = 92; 1 + <|>; let z = (); } " - ), - @r###" - ⋮[ - ⋮ CompletionItem { - ⋮ label: "quux", - ⋮ source_range: [91; 91), - ⋮ delete: [91; 91), - ⋮ insert: "quux($0)", - ⋮ kind: Function, - ⋮ detail: "fn quux(x: i32)", - ⋮ }, - ⋮ CompletionItem { - ⋮ label: "x", - ⋮ source_range: [91; 91), - ⋮ delete: [91; 91), - ⋮ insert: "x", - ⋮ kind: Binding, - ⋮ detail: "i32", - ⋮ }, - ⋮ CompletionItem { - ⋮ label: "y", - ⋮ source_range: [91; 91), - ⋮ delete: [91; 91), - ⋮ insert: "y", - ⋮ kind: Binding, - ⋮ detail: "i32", - ⋮ }, - ⋮] - "### - ); + ), + @r###"[ + CompletionItem { + label: "quux", + source_range: [91; 91), + delete: [91; 91), + insert: "quux($0)", + kind: Function, + detail: "fn quux(x: i32)", + }, + CompletionItem { + label: "x", + source_range: [91; 91), + delete: [91; 91), + insert: "x", + kind: Binding, + detail: "i32", + }, + CompletionItem { + label: "y", + source_range: [91; 91), + delete: [91; 91), + insert: "y", + kind: Binding, + detail: "i32", + }, +]"### + ); } #[test] fn completes_bindings_from_if_let() { assert_debug_snapshot_matches!( - do_reference_completion( - r" + do_reference_completion( + r" fn quux() { if let Some(x) = foo() { let y = 92; @@ -186,188 +184,178 @@ mod tests { } } " - ), - @r###" - ⋮[ - ⋮ CompletionItem { - ⋮ label: "a", - ⋮ source_range: [242; 242), - ⋮ delete: [242; 242), - ⋮ insert: "a", - ⋮ kind: Binding, - ⋮ }, - ⋮ CompletionItem { - ⋮ label: "b", - ⋮ source_range: [242; 242), - ⋮ delete: [242; 242), - ⋮ insert: "b", - ⋮ kind: Binding, - ⋮ detail: "i32", - ⋮ }, - ⋮ CompletionItem { - ⋮ label: "quux", - ⋮ source_range: [242; 242), - ⋮ delete: [242; 242), - ⋮ insert: "quux()$0", - ⋮ kind: Function, - ⋮ detail: "fn quux()", - ⋮ }, - ⋮] - "### - ); + ), + @r###"[ + CompletionItem { + label: "a", + source_range: [242; 242), + delete: [242; 242), + insert: "a", + kind: Binding, + }, + CompletionItem { + label: "b", + source_range: [242; 242), + delete: [242; 242), + insert: "b", + kind: Binding, + detail: "i32", + }, + CompletionItem { + label: "quux", + source_range: [242; 242), + delete: [242; 242), + insert: "quux()$0", + kind: Function, + detail: "fn quux()", + }, +]"### + ); } #[test] fn completes_bindings_from_for() { assert_debug_snapshot_matches!( - do_reference_completion( - r" + do_reference_completion( + r" fn quux() { for x in &[1, 2, 3] { <|> } } " - ), - @r###" - ⋮[ - ⋮ CompletionItem { - ⋮ label: "quux", - ⋮ source_range: [95; 95), - ⋮ delete: [95; 95), - ⋮ insert: "quux()$0", - ⋮ kind: Function, - ⋮ detail: "fn quux()", - ⋮ }, - ⋮ CompletionItem { - ⋮ label: "x", - ⋮ source_range: [95; 95), - ⋮ delete: [95; 95), - ⋮ insert: "x", - ⋮ kind: Binding, - ⋮ }, - ⋮] - "### - ); + ), + @r###"[ + CompletionItem { + label: "quux", + source_range: [95; 95), + delete: [95; 95), + insert: "quux()$0", + kind: Function, + detail: "fn quux()", + }, + CompletionItem { + label: "x", + source_range: [95; 95), + delete: [95; 95), + insert: "x", + kind: Binding, + }, +]"### + ); } #[test] fn completes_generic_params() { assert_debug_snapshot_matches!( - do_reference_completion( - r" + do_reference_completion( + r" fn quux() { <|> } " - ), - @r###" - ⋮[ - ⋮ CompletionItem { - ⋮ label: "T", - ⋮ source_range: [52; 52), - ⋮ delete: [52; 52), - ⋮ insert: "T", - ⋮ kind: TypeParam, - ⋮ }, - ⋮ CompletionItem { - ⋮ label: "quux", - ⋮ source_range: [52; 52), - ⋮ delete: [52; 52), - ⋮ insert: "quux()$0", - ⋮ kind: Function, - ⋮ detail: "fn quux()", - ⋮ }, - ⋮] - "### - ); + ), + @r###"[ + CompletionItem { + label: "T", + source_range: [52; 52), + delete: [52; 52), + insert: "T", + kind: TypeParam, + }, + CompletionItem { + label: "quux", + source_range: [52; 52), + delete: [52; 52), + insert: "quux()$0", + kind: Function, + detail: "fn quux()", + }, +]"### + ); } #[test] fn completes_generic_params_in_struct() { assert_debug_snapshot_matches!( - do_reference_completion( - r" + do_reference_completion( + r" struct X { x: <|> } " - ), - @r###" - ⋮[ - ⋮ CompletionItem { - ⋮ label: "T", - ⋮ source_range: [54; 54), - ⋮ delete: [54; 54), - ⋮ insert: "T", - ⋮ kind: TypeParam, - ⋮ }, - ⋮ CompletionItem { - ⋮ label: "X", - ⋮ source_range: [54; 54), - ⋮ delete: [54; 54), - ⋮ insert: "X", - ⋮ kind: Struct, - ⋮ }, - ⋮] - "### - ); + ), + @r###"[ + CompletionItem { + label: "T", + source_range: [54; 54), + delete: [54; 54), + insert: "T", + kind: TypeParam, + }, + CompletionItem { + label: "X", + source_range: [54; 54), + delete: [54; 54), + insert: "X", + kind: Struct, + }, +]"### + ); } #[test] fn completes_module_items() { assert_debug_snapshot_matches!( - do_reference_completion( - r" + do_reference_completion( + r" struct Foo; enum Baz {} fn quux() { <|> } " - ), - @r###" - ⋮[ - ⋮ CompletionItem { - ⋮ label: "Baz", - ⋮ source_range: [105; 105), - ⋮ delete: [105; 105), - ⋮ insert: "Baz", - ⋮ kind: Enum, - ⋮ }, - ⋮ CompletionItem { - ⋮ label: "Foo", - ⋮ source_range: [105; 105), - ⋮ delete: [105; 105), - ⋮ insert: "Foo", - ⋮ kind: Struct, - ⋮ }, - ⋮ CompletionItem { - ⋮ label: "quux", - ⋮ source_range: [105; 105), - ⋮ delete: [105; 105), - ⋮ insert: "quux()$0", - ⋮ kind: Function, - ⋮ detail: "fn quux()", - ⋮ }, - ⋮] - "### + ), + @r###"[ + CompletionItem { + label: "Baz", + source_range: [105; 105), + delete: [105; 105), + insert: "Baz", + kind: Enum, + }, + CompletionItem { + label: "Foo", + source_range: [105; 105), + delete: [105; 105), + insert: "Foo", + kind: Struct, + }, + CompletionItem { + label: "quux", + source_range: [105; 105), + delete: [105; 105), + insert: "quux()$0", + kind: Function, + detail: "fn quux()", + }, +]"### ); } #[test] fn completes_extern_prelude() { assert_debug_snapshot_matches!( - do_reference_completion( - r" + do_reference_completion( + r" //- /lib.rs use <|>; //- /other_crate/lib.rs // nothing here " - ), - @r#"[ + ), + @r#"[ CompletionItem { label: "other_crate", source_range: [4; 4), @@ -376,79 +364,75 @@ mod tests { kind: Module, }, ]"# - ); + ); } #[test] fn completes_module_items_in_nested_modules() { assert_debug_snapshot_matches!( - do_reference_completion( - r" + do_reference_completion( + r" struct Foo; mod m { struct Bar; fn quux() { <|> } } " - ), - @r###" - ⋮[ - ⋮ CompletionItem { - ⋮ label: "Bar", - ⋮ source_range: [117; 117), - ⋮ delete: [117; 117), - ⋮ insert: "Bar", - ⋮ kind: Struct, - ⋮ }, - ⋮ CompletionItem { - ⋮ label: "quux", - ⋮ source_range: [117; 117), - ⋮ delete: [117; 117), - ⋮ insert: "quux()$0", - ⋮ kind: Function, - ⋮ detail: "fn quux()", - ⋮ }, - ⋮] - "### - ); + ), + @r###"[ + CompletionItem { + label: "Bar", + source_range: [117; 117), + delete: [117; 117), + insert: "Bar", + kind: Struct, + }, + CompletionItem { + label: "quux", + source_range: [117; 117), + delete: [117; 117), + insert: "quux()$0", + kind: Function, + detail: "fn quux()", + }, +]"### + ); } #[test] fn completes_return_type() { assert_debug_snapshot_matches!( - do_reference_completion( - r" + do_reference_completion( + r" struct Foo; fn x() -> <|> " - ), - @r###" - ⋮[ - ⋮ CompletionItem { - ⋮ label: "Foo", - ⋮ source_range: [55; 55), - ⋮ delete: [55; 55), - ⋮ insert: "Foo", - ⋮ kind: Struct, - ⋮ }, - ⋮ CompletionItem { - ⋮ label: "x", - ⋮ source_range: [55; 55), - ⋮ delete: [55; 55), - ⋮ insert: "x()$0", - ⋮ kind: Function, - ⋮ detail: "fn x()", - ⋮ }, - ⋮] - "### - ); + ), + @r###"[ + CompletionItem { + label: "Foo", + source_range: [55; 55), + delete: [55; 55), + insert: "Foo", + kind: Struct, + }, + CompletionItem { + label: "x", + source_range: [55; 55), + delete: [55; 55), + insert: "x()$0", + kind: Function, + detail: "fn x()", + }, +]"### + ); } #[test] fn dont_show_both_completions_for_shadowing() { assert_debug_snapshot_matches!( - do_reference_completion( - r" + do_reference_completion( + r" fn foo() { let bar = 92; { @@ -457,35 +441,33 @@ mod tests { } } " - ), - @r###" - ⋮[ - ⋮ CompletionItem { - ⋮ label: "bar", - ⋮ source_range: [146; 146), - ⋮ delete: [146; 146), - ⋮ insert: "bar", - ⋮ kind: Binding, - ⋮ detail: "i32", - ⋮ }, - ⋮ CompletionItem { - ⋮ label: "foo", - ⋮ source_range: [146; 146), - ⋮ delete: [146; 146), - ⋮ insert: "foo()$0", - ⋮ kind: Function, - ⋮ detail: "fn foo()", - ⋮ }, - ⋮] - "### - ); + ), + @r###"[ + CompletionItem { + label: "bar", + source_range: [146; 146), + delete: [146; 146), + insert: "bar", + kind: Binding, + detail: "i32", + }, + CompletionItem { + label: "foo", + source_range: [146; 146), + delete: [146; 146), + insert: "foo()$0", + kind: Function, + detail: "fn foo()", + }, +]"### + ); } #[test] fn completes_self_in_methods() { assert_debug_snapshot_matches!( - do_reference_completion(r"impl S { fn foo(&self) { <|> } }"), - @r#"[ + do_reference_completion(r"impl S { fn foo(&self) { <|> } }"), + @r#"[ CompletionItem { label: "Self", source_range: [25; 25), @@ -502,14 +484,14 @@ mod tests { detail: "&{unknown}", }, ]"# - ); + ); } #[test] fn completes_prelude() { assert_debug_snapshot_matches!( - do_reference_completion( - " + do_reference_completion( + " //- /main.rs fn foo() { let x: <|> } @@ -521,8 +503,8 @@ mod tests { struct Option; } " - ), - @r#"[ + ), + @r#"[ CompletionItem { label: "Option", source_range: [18; 18), @@ -546,6 +528,6 @@ mod tests { kind: Module, }, ]"# - ); + ); } } From 1b74eed8ca3abb14fa6ff404d1620397f3b2e4e8 Mon Sep 17 00:00:00 2001 From: Phil Ellison Date: Sun, 28 Jul 2019 12:33:21 +0100 Subject: [PATCH 10/12] Remove vertical ellipses from tests in complete_snippet.rs and presentation.rs --- .../src/completion/complete_snippet.rs | 44 +++-- .../ra_ide_api/src/completion/presentation.rs | 152 +++++++++--------- 2 files changed, 94 insertions(+), 102 deletions(-) diff --git a/crates/ra_ide_api/src/completion/complete_snippet.rs b/crates/ra_ide_api/src/completion/complete_snippet.rs index e0368b3b224..a35f315118c 100644 --- a/crates/ra_ide_api/src/completion/complete_snippet.rs +++ b/crates/ra_ide_api/src/completion/complete_snippet.rs @@ -84,33 +84,31 @@ mod tests { #[test] fn completes_snippets_in_items() { assert_debug_snapshot_matches!( - do_snippet_completion( - r" + do_snippet_completion( + r" #[cfg(test)] mod tests { <|> } " - ), - @r###" - ⋮[ - ⋮ CompletionItem { - ⋮ label: "Test function", - ⋮ source_range: [78; 78), - ⋮ delete: [78; 78), - ⋮ insert: "#[test]\nfn ${1:feature}() {\n $0\n}", - ⋮ kind: Snippet, - ⋮ lookup: "tfn", - ⋮ }, - ⋮ CompletionItem { - ⋮ label: "pub(crate)", - ⋮ source_range: [78; 78), - ⋮ delete: [78; 78), - ⋮ insert: "pub(crate) $0", - ⋮ kind: Snippet, - ⋮ }, - ⋮] - "### - ); + ), + @r###"[ + CompletionItem { + label: "Test function", + source_range: [78; 78), + delete: [78; 78), + insert: "#[test]\nfn ${1:feature}() {\n $0\n}", + kind: Snippet, + lookup: "tfn", + }, + CompletionItem { + label: "pub(crate)", + source_range: [78; 78), + delete: [78; 78), + insert: "pub(crate) $0", + kind: Snippet, + }, +]"### + ); } } diff --git a/crates/ra_ide_api/src/completion/presentation.rs b/crates/ra_ide_api/src/completion/presentation.rs index 5df19990ca0..6878008d3f0 100644 --- a/crates/ra_ide_api/src/completion/presentation.rs +++ b/crates/ra_ide_api/src/completion/presentation.rs @@ -194,64 +194,60 @@ mod tests { fn inserts_parens_for_function_calls() { covers!(inserts_parens_for_function_calls); assert_debug_snapshot_matches!( - do_reference_completion( - r" + do_reference_completion( + r" fn no_args() {} fn main() { no_<|> } " - ), - @r###" - ⋮[ - ⋮ CompletionItem { - ⋮ label: "main", - ⋮ source_range: [61; 64), - ⋮ delete: [61; 64), - ⋮ insert: "main()$0", - ⋮ kind: Function, - ⋮ detail: "fn main()", - ⋮ }, - ⋮ CompletionItem { - ⋮ label: "no_args", - ⋮ source_range: [61; 64), - ⋮ delete: [61; 64), - ⋮ insert: "no_args()$0", - ⋮ kind: Function, - ⋮ detail: "fn no_args()", - ⋮ }, - ⋮] - "### - ); + ), + @r###"[ + CompletionItem { + label: "main", + source_range: [61; 64), + delete: [61; 64), + insert: "main()$0", + kind: Function, + detail: "fn main()", + }, + CompletionItem { + label: "no_args", + source_range: [61; 64), + delete: [61; 64), + insert: "no_args()$0", + kind: Function, + detail: "fn no_args()", + }, +]"### + ); assert_debug_snapshot_matches!( - do_reference_completion( - r" + do_reference_completion( + r" fn with_args(x: i32, y: String) {} fn main() { with_<|> } " - ), - @r###" - ⋮[ - ⋮ CompletionItem { - ⋮ label: "main", - ⋮ source_range: [80; 85), - ⋮ delete: [80; 85), - ⋮ insert: "main()$0", - ⋮ kind: Function, - ⋮ detail: "fn main()", - ⋮ }, - ⋮ CompletionItem { - ⋮ label: "with_args", - ⋮ source_range: [80; 85), - ⋮ delete: [80; 85), - ⋮ insert: "with_args($0)", - ⋮ kind: Function, - ⋮ detail: "fn with_args(x: i32, y: String)", - ⋮ }, - ⋮] - "### - ); + ), + @r###"[ + CompletionItem { + label: "main", + source_range: [80; 85), + delete: [80; 85), + insert: "main()$0", + kind: Function, + detail: "fn main()", + }, + CompletionItem { + label: "with_args", + source_range: [80; 85), + delete: [80; 85), + insert: "with_args($0)", + kind: Function, + detail: "fn with_args(x: i32, y: String)", + }, +]"### + ); assert_debug_snapshot_matches!( - do_reference_completion( - r" + do_reference_completion( + r" struct S {} impl S { fn foo(&self) {} @@ -260,33 +256,31 @@ mod tests { s.f<|> } " - ), - @r###" - ⋮[ - ⋮ CompletionItem { - ⋮ label: "foo", - ⋮ source_range: [163; 164), - ⋮ delete: [163; 164), - ⋮ insert: "foo()$0", - ⋮ kind: Method, - ⋮ detail: "fn foo(&self)", - ⋮ }, - ⋮] - "### - ); + ), + @r###"[ + CompletionItem { + label: "foo", + source_range: [163; 164), + delete: [163; 164), + insert: "foo()$0", + kind: Method, + detail: "fn foo(&self)", + }, +]"### + ); } #[test] fn dont_render_function_parens_in_use_item() { assert_debug_snapshot_matches!( - do_reference_completion( - " + do_reference_completion( + " //- /lib.rs mod m { pub fn foo() {} } use crate::m::f<|>; " - ), - @r#"[ + ), + @r#"[ CompletionItem { label: "foo", source_range: [40; 41), @@ -296,22 +290,22 @@ mod tests { detail: "pub fn foo()", }, ]"# - ); + ); } #[test] fn dont_render_function_parens_if_already_call() { assert_debug_snapshot_matches!( - do_reference_completion( - " + do_reference_completion( + " //- /lib.rs fn frobnicate() {} fn main() { frob<|>(); } " - ), - @r#"[ + ), + @r#"[ CompletionItem { label: "frobnicate", source_range: [35; 39), @@ -329,10 +323,10 @@ mod tests { detail: "fn main()", }, ]"# - ); + ); assert_debug_snapshot_matches!( - do_reference_completion( - " + do_reference_completion( + " //- /lib.rs struct Foo {} impl Foo { fn new() -> Foo {} } @@ -340,8 +334,8 @@ mod tests { Foo::ne<|>(); } " - ), - @r#"[ + ), + @r#"[ CompletionItem { label: "new", source_range: [67; 69), @@ -351,6 +345,6 @@ mod tests { detail: "fn new() -> Foo", }, ]"# - ); + ); } } From 44b2642900d7d4128b0b3c38b972e78bfc0d93f1 Mon Sep 17 00:00:00 2001 From: Phil Ellison Date: Sun, 28 Jul 2019 12:37:03 +0100 Subject: [PATCH 11/12] Remove vertical ellipses in references.cs --- crates/ra_ide_api/src/references.rs | 67 ++++++++++++++--------------- 1 file changed, 33 insertions(+), 34 deletions(-) diff --git a/crates/ra_ide_api/src/references.rs b/crates/ra_ide_api/src/references.rs index 9e2601f83a5..a1415118d37 100644 --- a/crates/ra_ide_api/src/references.rs +++ b/crates/ra_ide_api/src/references.rs @@ -389,40 +389,39 @@ mod tests { let new_name = "foo2"; let source_change = analysis.rename(position, new_name).unwrap(); assert_debug_snapshot_matches!(&source_change, -@r###" - ⋮Some( - ⋮ SourceChange { - ⋮ label: "rename", - ⋮ source_file_edits: [ - ⋮ SourceFileEdit { - ⋮ file_id: FileId( - ⋮ 1, - ⋮ ), - ⋮ edit: TextEdit { - ⋮ atoms: [ - ⋮ AtomTextEdit { - ⋮ delete: [4; 7), - ⋮ insert: "foo2", - ⋮ }, - ⋮ ], - ⋮ }, - ⋮ }, - ⋮ ], - ⋮ file_system_edits: [ - ⋮ MoveFile { - ⋮ src: FileId( - ⋮ 2, - ⋮ ), - ⋮ dst_source_root: SourceRootId( - ⋮ 0, - ⋮ ), - ⋮ dst_path: "foo2/mod.rs", - ⋮ }, - ⋮ ], - ⋮ cursor_position: None, - ⋮ }, - ⋮) - "###); +@r###"Some( + SourceChange { + label: "rename", + source_file_edits: [ + SourceFileEdit { + file_id: FileId( + 1, + ), + edit: TextEdit { + atoms: [ + AtomTextEdit { + delete: [4; 7), + insert: "foo2", + }, + ], + }, + }, + ], + file_system_edits: [ + MoveFile { + src: FileId( + 2, + ), + dst_source_root: SourceRootId( + 0, + ), + dst_path: "foo2/mod.rs", + }, + ], + cursor_position: None, + }, +)"### + ); } fn test_rename(text: &str, new_name: &str, expected: &str) { From 67e75ca1261863d21b48620e36b1632043ef36f9 Mon Sep 17 00:00:00 2001 From: Phil Ellison Date: Sun, 28 Jul 2019 12:45:01 +0100 Subject: [PATCH 12/12] Rerun cargo format, to make tests pass and formatting incorrect --- crates/ra_ide_api/src/completion/complete_scope.rs | 10 +++++----- crates/ra_ide_api/src/references.rs | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/crates/ra_ide_api/src/completion/complete_scope.rs b/crates/ra_ide_api/src/completion/complete_scope.rs index 079ecfacc28..2000d953ad4 100644 --- a/crates/ra_ide_api/src/completion/complete_scope.rs +++ b/crates/ra_ide_api/src/completion/complete_scope.rs @@ -307,16 +307,16 @@ mod tests { #[test] fn completes_module_items() { assert_debug_snapshot_matches!( - do_reference_completion( - r" + do_reference_completion( + r" struct Foo; enum Baz {} fn quux() { <|> } " - ), - @r###"[ + ), + @r###"[ CompletionItem { label: "Baz", source_range: [105; 105), @@ -340,7 +340,7 @@ mod tests { detail: "fn quux()", }, ]"### - ); + ); } #[test] diff --git a/crates/ra_ide_api/src/references.rs b/crates/ra_ide_api/src/references.rs index a1415118d37..379dd422ef5 100644 --- a/crates/ra_ide_api/src/references.rs +++ b/crates/ra_ide_api/src/references.rs @@ -389,7 +389,7 @@ mod tests { let new_name = "foo2"; let source_change = analysis.rename(position, new_name).unwrap(); assert_debug_snapshot_matches!(&source_change, -@r###"Some( + @r###"Some( SourceChange { label: "rename", source_file_edits: [ @@ -421,7 +421,7 @@ mod tests { cursor_position: None, }, )"### - ); + ); } fn test_rename(text: &str, new_name: &str, expected: &str) {