mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-12 23:13:15 +00:00
Merge #1601
1601: Inline snapshots for tests r=matklad a=theotherphil Fixes https://github.com/rust-analyzer/rust-analyzer/issues/1127. The "cargo format" commits are required to get the formatting tests to pass. However, they actually mess up the formatting. Co-authored-by: Phil Ellison <phil.j.ellison@gmail.com>
This commit is contained in:
commit
359b3376b3
@ -16,7 +16,7 @@ mod complete_postfix;
|
|||||||
use ra_db::SourceDatabase;
|
use ra_db::SourceDatabase;
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
use crate::completion::completion_item::{check_completion, do_completion};
|
use crate::completion::completion_item::do_completion;
|
||||||
use crate::{
|
use crate::{
|
||||||
completion::{
|
completion::{
|
||||||
completion_context::CompletionContext,
|
completion_context::CompletionContext,
|
||||||
|
@ -121,172 +121,413 @@ impl ImportResolver {
|
|||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
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) {
|
fn do_reference_completion(code: &str) -> Vec<CompletionItem> {
|
||||||
check_completion(name, code, CompletionKind::Reference);
|
do_completion(code, CompletionKind::Reference)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn completes_bindings_from_let() {
|
fn completes_bindings_from_let() {
|
||||||
check_reference_completion(
|
assert_debug_snapshot_matches!(
|
||||||
"bindings_from_let",
|
do_reference_completion(
|
||||||
r"
|
r"
|
||||||
fn quux(x: i32) {
|
fn quux(x: i32) {
|
||||||
let y = 92;
|
let y = 92;
|
||||||
1 + <|>;
|
1 + <|>;
|
||||||
let z = ();
|
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]
|
#[test]
|
||||||
fn completes_bindings_from_if_let() {
|
fn completes_bindings_from_if_let() {
|
||||||
check_reference_completion(
|
assert_debug_snapshot_matches!(
|
||||||
"bindings_from_if_let",
|
do_reference_completion(
|
||||||
r"
|
r"
|
||||||
fn quux() {
|
fn quux() {
|
||||||
if let Some(x) = foo() {
|
if let Some(x) = foo() {
|
||||||
let y = 92;
|
let y = 92;
|
||||||
};
|
};
|
||||||
if let Some(a) = bar() {
|
if let Some(a) = bar() {
|
||||||
let b = 62;
|
let b = 62;
|
||||||
1 + <|>
|
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]
|
#[test]
|
||||||
fn completes_bindings_from_for() {
|
fn completes_bindings_from_for() {
|
||||||
check_reference_completion(
|
assert_debug_snapshot_matches!(
|
||||||
"bindings_from_for",
|
do_reference_completion(
|
||||||
r"
|
r"
|
||||||
fn quux() {
|
fn quux() {
|
||||||
for x in &[1, 2, 3] {
|
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]
|
#[test]
|
||||||
fn completes_generic_params() {
|
fn completes_generic_params() {
|
||||||
check_reference_completion(
|
assert_debug_snapshot_matches!(
|
||||||
"generic_params",
|
do_reference_completion(
|
||||||
r"
|
r"
|
||||||
fn quux<T>() {
|
fn quux<T>() {
|
||||||
<|>
|
<|>
|
||||||
}
|
}
|
||||||
",
|
"
|
||||||
|
),
|
||||||
|
@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<T>()",
|
||||||
|
},
|
||||||
|
]"###
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn completes_generic_params_in_struct() {
|
fn completes_generic_params_in_struct() {
|
||||||
check_reference_completion(
|
assert_debug_snapshot_matches!(
|
||||||
"generic_params_in_struct",
|
do_reference_completion(
|
||||||
r"
|
r"
|
||||||
struct X<T> {
|
struct X<T> {
|
||||||
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]
|
#[test]
|
||||||
fn completes_module_items() {
|
fn completes_module_items() {
|
||||||
check_reference_completion(
|
assert_debug_snapshot_matches!(
|
||||||
"module_items",
|
do_reference_completion(
|
||||||
r"
|
r"
|
||||||
struct Foo;
|
struct Foo;
|
||||||
enum Baz {}
|
enum Baz {}
|
||||||
fn quux() {
|
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]
|
#[test]
|
||||||
fn completes_extern_prelude() {
|
fn completes_extern_prelude() {
|
||||||
check_reference_completion(
|
assert_debug_snapshot_matches!(
|
||||||
"extern_prelude",
|
do_reference_completion(
|
||||||
r"
|
r"
|
||||||
//- /lib.rs
|
//- /lib.rs
|
||||||
use <|>;
|
use <|>;
|
||||||
|
|
||||||
//- /other_crate/lib.rs
|
//- /other_crate/lib.rs
|
||||||
// nothing here
|
// nothing here
|
||||||
",
|
"
|
||||||
|
),
|
||||||
|
@r#"[
|
||||||
|
CompletionItem {
|
||||||
|
label: "other_crate",
|
||||||
|
source_range: [4; 4),
|
||||||
|
delete: [4; 4),
|
||||||
|
insert: "other_crate",
|
||||||
|
kind: Module,
|
||||||
|
},
|
||||||
|
]"#
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn completes_module_items_in_nested_modules() {
|
fn completes_module_items_in_nested_modules() {
|
||||||
check_reference_completion(
|
assert_debug_snapshot_matches!(
|
||||||
"module_items_in_nested_modules",
|
do_reference_completion(
|
||||||
r"
|
r"
|
||||||
struct Foo;
|
struct Foo;
|
||||||
mod m {
|
mod m {
|
||||||
struct Bar;
|
struct Bar;
|
||||||
fn quux() { <|> }
|
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]
|
#[test]
|
||||||
fn completes_return_type() {
|
fn completes_return_type() {
|
||||||
check_reference_completion(
|
assert_debug_snapshot_matches!(
|
||||||
"return_type",
|
do_reference_completion(
|
||||||
r"
|
r"
|
||||||
struct Foo;
|
struct Foo;
|
||||||
fn x() -> <|>
|
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]
|
#[test]
|
||||||
fn dont_show_both_completions_for_shadowing() {
|
fn dont_show_both_completions_for_shadowing() {
|
||||||
check_reference_completion(
|
assert_debug_snapshot_matches!(
|
||||||
"dont_show_both_completions_for_shadowing",
|
do_reference_completion(
|
||||||
r"
|
r"
|
||||||
fn foo() {
|
fn foo() {
|
||||||
let bar = 92;
|
let bar = 92;
|
||||||
{
|
{
|
||||||
let bar = 62;
|
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]
|
#[test]
|
||||||
fn completes_self_in_methods() {
|
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]
|
#[test]
|
||||||
fn completes_prelude() {
|
fn completes_prelude() {
|
||||||
check_reference_completion(
|
assert_debug_snapshot_matches!(
|
||||||
"completes_prelude",
|
do_reference_completion(
|
||||||
"
|
"
|
||||||
//- /main.rs
|
//- /main.rs
|
||||||
fn foo() { let x: <|> }
|
fn foo() { let x: <|> }
|
||||||
|
|
||||||
//- /std/lib.rs
|
//- /std/lib.rs
|
||||||
#[prelude_import]
|
#[prelude_import]
|
||||||
use prelude::*;
|
use prelude::*;
|
||||||
|
|
||||||
mod prelude {
|
mod prelude {
|
||||||
struct Option;
|
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,
|
||||||
|
},
|
||||||
|
]"#
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -39,39 +39,76 @@ fn ${1:feature}() {
|
|||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
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) {
|
fn do_snippet_completion(code: &str) -> Vec<CompletionItem> {
|
||||||
check_completion(name, code, CompletionKind::Snippet);
|
do_completion(code, CompletionKind::Snippet)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn completes_snippets_in_expressions() {
|
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]
|
#[test]
|
||||||
fn should_not_complete_snippets_in_path() {
|
fn should_not_complete_snippets_in_path() {
|
||||||
check_snippet_completion(
|
assert_debug_snapshot_matches!(
|
||||||
"should_not_complete_snippets_in_path",
|
do_snippet_completion(r"fn foo(x: i32) { ::foo<|> }"),
|
||||||
r"fn foo(x: i32) { ::foo<|> }",
|
@r#"[]"#
|
||||||
);
|
);
|
||||||
check_snippet_completion(
|
assert_debug_snapshot_matches!(
|
||||||
"should_not_complete_snippets_in_path2",
|
do_snippet_completion(r"fn foo(x: i32) { ::<|> }"),
|
||||||
r"fn foo(x: i32) { ::<|> }",
|
@r#"[]"#
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn completes_snippets_in_items() {
|
fn completes_snippets_in_items() {
|
||||||
check_snippet_completion(
|
assert_debug_snapshot_matches!(
|
||||||
"snippets_in_items",
|
do_snippet_completion(
|
||||||
r"
|
r"
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
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,
|
||||||
|
},
|
||||||
|
]"###
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -299,10 +299,3 @@ pub(crate) fn do_completion(code: &str, kind: CompletionKind) -> Vec<CompletionI
|
|||||||
kind_completions.sort_by_key(|c| c.label.clone());
|
kind_completions.sort_by_key(|c| c.label.clone());
|
||||||
kind_completions
|
kind_completions
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
|
||||||
pub(crate) fn check_completion(test_name: &str, code: &str, kind: CompletionKind) {
|
|
||||||
use insta::assert_debug_snapshot_matches;
|
|
||||||
let kind_completions = do_completion(code, kind);
|
|
||||||
assert_debug_snapshot_matches!(test_name, kind_completions);
|
|
||||||
}
|
|
||||||
|
@ -182,80 +182,169 @@ impl Completions {
|
|||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
|
use crate::completion::{do_completion, CompletionItem, CompletionKind};
|
||||||
|
use insta::assert_debug_snapshot_matches;
|
||||||
use test_utils::covers;
|
use test_utils::covers;
|
||||||
|
|
||||||
use crate::completion::{check_completion, CompletionKind};
|
fn do_reference_completion(code: &str) -> Vec<CompletionItem> {
|
||||||
|
do_completion(code, CompletionKind::Reference)
|
||||||
fn check_reference_completion(code: &str, expected_completions: &str) {
|
|
||||||
check_completion(code, expected_completions, CompletionKind::Reference);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn inserts_parens_for_function_calls() {
|
fn inserts_parens_for_function_calls() {
|
||||||
covers!(inserts_parens_for_function_calls);
|
covers!(inserts_parens_for_function_calls);
|
||||||
check_reference_completion(
|
assert_debug_snapshot_matches!(
|
||||||
"inserts_parens_for_function_calls1",
|
do_reference_completion(
|
||||||
r"
|
r"
|
||||||
fn no_args() {}
|
fn no_args() {}
|
||||||
fn main() { no_<|> }
|
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(
|
assert_debug_snapshot_matches!(
|
||||||
"inserts_parens_for_function_calls2",
|
do_reference_completion(
|
||||||
r"
|
r"
|
||||||
fn with_args(x: i32, y: String) {}
|
fn with_args(x: i32, y: String) {}
|
||||||
fn main() { with_<|> }
|
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]
|
#[test]
|
||||||
fn dont_render_function_parens_in_use_item() {
|
fn dont_render_function_parens_in_use_item() {
|
||||||
check_reference_completion(
|
assert_debug_snapshot_matches!(
|
||||||
"dont_render_function_parens_in_use_item",
|
do_reference_completion(
|
||||||
"
|
"
|
||||||
//- /lib.rs
|
//- /lib.rs
|
||||||
mod m { pub fn foo() {} }
|
mod m { pub fn foo() {} }
|
||||||
use crate::m::f<|>;
|
use crate::m::f<|>;
|
||||||
",
|
"
|
||||||
)
|
),
|
||||||
|
@r#"[
|
||||||
|
CompletionItem {
|
||||||
|
label: "foo",
|
||||||
|
source_range: [40; 41),
|
||||||
|
delete: [40; 41),
|
||||||
|
insert: "foo",
|
||||||
|
kind: Function,
|
||||||
|
detail: "pub fn foo()",
|
||||||
|
},
|
||||||
|
]"#
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn dont_render_function_parens_if_already_call() {
|
fn dont_render_function_parens_if_already_call() {
|
||||||
check_reference_completion(
|
assert_debug_snapshot_matches!(
|
||||||
"dont_render_function_parens_if_already_call",
|
do_reference_completion(
|
||||||
"
|
"
|
||||||
//- /lib.rs
|
//- /lib.rs
|
||||||
fn frobnicate() {}
|
fn frobnicate() {}
|
||||||
fn main() {
|
fn main() {
|
||||||
frob<|>();
|
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<|>();
|
|
||||||
}
|
|
||||||
",
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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,
|
|
||||||
},
|
|
||||||
]
|
|
@ -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()",
|
|
||||||
},
|
|
||||||
]
|
|
@ -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",
|
|
||||||
},
|
|
||||||
]
|
|
@ -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,
|
|
||||||
},
|
|
||||||
]
|
|
@ -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()",
|
|
||||||
},
|
|
||||||
]
|
|
@ -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",
|
|
||||||
},
|
|
||||||
]
|
|
@ -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()",
|
|
||||||
},
|
|
||||||
]
|
|
@ -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()",
|
|
||||||
},
|
|
||||||
]
|
|
@ -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,
|
|
||||||
},
|
|
||||||
]
|
|
@ -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<T>()",
|
|
||||||
},
|
|
||||||
]
|
|
@ -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,
|
|
||||||
},
|
|
||||||
]
|
|
@ -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()",
|
|
||||||
},
|
|
||||||
]
|
|
@ -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)",
|
|
||||||
},
|
|
||||||
]
|
|
@ -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)",
|
|
||||||
},
|
|
||||||
]
|
|
@ -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()",
|
|
||||||
},
|
|
||||||
]
|
|
@ -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()",
|
|
||||||
},
|
|
||||||
]
|
|
@ -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()",
|
|
||||||
},
|
|
||||||
]
|
|
@ -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}",
|
|
||||||
},
|
|
||||||
]
|
|
@ -1,5 +0,0 @@
|
|||||||
Created: 2019-01-23T05:19:36.475253+00:00
|
|
||||||
Creator: insta@0.1.4
|
|
||||||
Source: crates/ra_ide_api/src/completion/completion_item.rs
|
|
||||||
|
|
||||||
[]
|
|
@ -1,5 +0,0 @@
|
|||||||
Created: 2019-01-23T05:19:36.476869+00:00
|
|
||||||
Creator: insta@0.1.4
|
|
||||||
Source: crates/ra_ide_api/src/completion/completion_item.rs
|
|
||||||
|
|
||||||
[]
|
|
@ -1,22 +0,0 @@
|
|||||||
---
|
|
||||||
created: "2019-05-23T22:23:35.141901047Z"
|
|
||||||
creator: insta@0.8.1
|
|
||||||
source: crates/ra_ide_api/src/completion/completion_item.rs
|
|
||||||
expression: kind_completions
|
|
||||||
---
|
|
||||||
[
|
|
||||||
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,
|
|
||||||
},
|
|
||||||
]
|
|
@ -1,23 +0,0 @@
|
|||||||
---
|
|
||||||
created: "2019-05-23T22:23:35.149234118Z"
|
|
||||||
creator: insta@0.8.1
|
|
||||||
source: crates/ra_ide_api/src/completion/completion_item.rs
|
|
||||||
expression: kind_completions
|
|
||||||
---
|
|
||||||
[
|
|
||||||
CompletionItem {
|
|
||||||
label: "Test function",
|
|
||||||
source_range: [66; 66),
|
|
||||||
delete: [66; 66),
|
|
||||||
insert: "#[test]\nfn ${1:feature}() {\n $0\n}",
|
|
||||||
kind: Snippet,
|
|
||||||
lookup: "tfn",
|
|
||||||
},
|
|
||||||
CompletionItem {
|
|
||||||
label: "pub(crate)",
|
|
||||||
source_range: [66; 66),
|
|
||||||
delete: [66; 66),
|
|
||||||
insert: "pub(crate) $0",
|
|
||||||
kind: Snippet,
|
|
||||||
},
|
|
||||||
]
|
|
@ -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) -> T",
|
|
||||||
),
|
|
||||||
deprecated: false,
|
|
||||||
},
|
|
||||||
StructureNode {
|
|
||||||
parent: Some(
|
|
||||||
2,
|
|
||||||
),
|
|
||||||
label: "bar3",
|
|
||||||
navigation_range: [89; 93),
|
|
||||||
node_range: [86; 156),
|
|
||||||
kind: FN_DEF,
|
|
||||||
detail: Some(
|
|
||||||
"fn<A, B>(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,
|
|
||||||
},
|
|
||||||
]
|
|
@ -204,6 +204,192 @@ fn very_obsolete() {}
|
|||||||
.ok()
|
.ok()
|
||||||
.unwrap();
|
.unwrap();
|
||||||
let structure = file_structure(&file);
|
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) -> T",
|
||||||
|
),
|
||||||
|
deprecated: false,
|
||||||
|
},
|
||||||
|
StructureNode {
|
||||||
|
parent: Some(
|
||||||
|
2,
|
||||||
|
),
|
||||||
|
label: "bar3",
|
||||||
|
navigation_range: [89; 93),
|
||||||
|
node_range: [86; 156),
|
||||||
|
kind: FN_DEF,
|
||||||
|
detail: Some(
|
||||||
|
"fn<A, B>(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,
|
||||||
|
},
|
||||||
|
]"#
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -341,7 +341,39 @@ mod tests {
|
|||||||
);
|
);
|
||||||
let new_name = "foo2";
|
let new_name = "foo2";
|
||||||
let source_change = analysis.rename(position, new_name).unwrap();
|
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]
|
#[test]
|
||||||
@ -356,7 +388,40 @@ mod tests {
|
|||||||
);
|
);
|
||||||
let new_name = "foo2";
|
let new_name = "foo2";
|
||||||
let source_change = analysis.rename(position, new_name).unwrap();
|
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) {
|
fn test_rename(text: &str, new_name: &str, expected: &str) {
|
||||||
|
@ -92,7 +92,26 @@ mod tests {
|
|||||||
"#,
|
"#,
|
||||||
);
|
);
|
||||||
let runnables = analysis.runnables(pos.file_id).unwrap();
|
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]
|
#[test]
|
||||||
@ -108,7 +127,22 @@ mod tests {
|
|||||||
"#,
|
"#,
|
||||||
);
|
);
|
||||||
let runnables = analysis.runnables(pos.file_id).unwrap();
|
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]
|
#[test]
|
||||||
@ -126,7 +160,22 @@ mod tests {
|
|||||||
"#,
|
"#,
|
||||||
);
|
);
|
||||||
let runnables = analysis.runnables(pos.file_id).unwrap();
|
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]
|
#[test]
|
||||||
@ -146,7 +195,22 @@ mod tests {
|
|||||||
"#,
|
"#,
|
||||||
);
|
);
|
||||||
let runnables = analysis.runnables(pos.file_id).unwrap();
|
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]
|
#[test]
|
||||||
|
@ -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"
|
|
||||||
}
|
|
||||||
]
|
|
@ -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,
|
|
||||||
},
|
|
||||||
)
|
|
@ -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,
|
|
||||||
},
|
|
||||||
)
|
|
@ -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",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
]
|
|
@ -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",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
]
|
|
@ -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",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
]
|
|
@ -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",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
]
|
|
Loading…
Reference in New Issue
Block a user