mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-27 05:23:24 +00:00
Auto merge of #13517 - feniljain:fix_completions, r=Veykril
fix: make custom expr prefix completions to understand refs
Possible fix of #7929
While reviewing the postfix completion code I saw that while calling `add_custom_postfix_completions` we were doing it under the part where reference was not taken into consideration, but as we are only adding postfix completions with `Expr` scope ( [source](ba28e19b78/crates/ide-completion/src/completions/postfix.rs (L272)
) )
I shifted the `add_custom_postfix_completions` call to part where references are considered
I am not sure if this is the correct fix or I am understanding the problem exactly but this small move seemed to have fixed the issue :)
This commit is contained in:
commit
12ced8f9db
1 changed files with 25 additions and 4 deletions
|
@ -69,10 +69,6 @@ pub(crate) fn complete_postfix(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if !ctx.config.snippets.is_empty() {
|
|
||||||
add_custom_postfix_completions(acc, ctx, &postfix_snippet, &receiver_text);
|
|
||||||
}
|
|
||||||
|
|
||||||
let try_enum = TryEnum::from_ty(&ctx.sema, &receiver_ty.strip_references());
|
let try_enum = TryEnum::from_ty(&ctx.sema, &receiver_ty.strip_references());
|
||||||
if let Some(try_enum) = &try_enum {
|
if let Some(try_enum) = &try_enum {
|
||||||
match try_enum {
|
match try_enum {
|
||||||
|
@ -140,6 +136,10 @@ pub(crate) fn complete_postfix(
|
||||||
None => return,
|
None => return,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if !ctx.config.snippets.is_empty() {
|
||||||
|
add_custom_postfix_completions(acc, ctx, &postfix_snippet, &receiver_text);
|
||||||
|
}
|
||||||
|
|
||||||
match try_enum {
|
match try_enum {
|
||||||
Some(try_enum) => match try_enum {
|
Some(try_enum) => match try_enum {
|
||||||
TryEnum::Result => {
|
TryEnum::Result => {
|
||||||
|
@ -613,4 +613,25 @@ fn main() {
|
||||||
r#"fn main() { log::error!("{}", 2+2) }"#,
|
r#"fn main() { log::error!("{}", 2+2) }"#,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn postfix_custom_snippets_completion_for_references() {
|
||||||
|
check_edit_with_config(
|
||||||
|
CompletionConfig {
|
||||||
|
snippets: vec![Snippet::new(
|
||||||
|
&[],
|
||||||
|
&["ok".into()],
|
||||||
|
&["Ok(${receiver})".into()],
|
||||||
|
"",
|
||||||
|
&[],
|
||||||
|
crate::SnippetScope::Expr,
|
||||||
|
)
|
||||||
|
.unwrap()],
|
||||||
|
..TEST_CONFIG
|
||||||
|
},
|
||||||
|
"ok",
|
||||||
|
r#"fn main() { &&42.$0 }"#,
|
||||||
|
r#"fn main() { Ok(&&42) }"#,
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue