Remove letelse control flow snippets

This commit is contained in:
Alain Siegrist 2024-01-27 14:28:50 +01:00
parent 51d57b9bb6
commit 7ec32d091a

View file

@ -75,11 +75,6 @@ pub(crate) fn complete_postfix(
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 {
let in_loop = dot_receiver
.syntax()
.ancestors()
.any(|n| matches!(n.kind(), WHILE_EXPR | LOOP_EXPR | FOR_EXPR));
match try_enum { match try_enum {
TryEnum::Result => { TryEnum::Result => {
postfix_snippet( postfix_snippet(
@ -92,11 +87,7 @@ pub(crate) fn complete_postfix(
postfix_snippet( postfix_snippet(
"lete", "lete",
"let Ok else {}", "let Ok else {}",
&if in_loop { &format!("let Ok($1) = {receiver_text} else {{\n $2\n}};\n$0"),
format!("let Ok($1) = {receiver_text} else {{\n ${{2|continue,break,return|}};\n}};\n$0")
} else {
format!("let Ok($1) = {receiver_text} else {{\n ${{2:return}};\n}};\n$0")
},
) )
.add_to(acc, ctx.db); .add_to(acc, ctx.db);
@ -118,11 +109,7 @@ pub(crate) fn complete_postfix(
postfix_snippet( postfix_snippet(
"lete", "lete",
"let Some else {}", "let Some else {}",
&if in_loop { &format!("let Some($1) = {receiver_text} else {{\n $2\n}};\n$0"),
format!("let Some($1) = {receiver_text} else {{\n ${{2|continue,break,return|}};\n}};\n$0")
} else {
format!("let Some($1) = {receiver_text} else {{\n ${{2:return}};\n}};\n$0")
},
) )
.add_to(acc, ctx.db); .add_to(acc, ctx.db);
@ -511,7 +498,7 @@ fn main() {
fn main() { fn main() {
let bar = Some(true); let bar = Some(true);
let Some($1) = bar else { let Some($1) = bar else {
${2:return}; $2
}; };
$0 $0
} }
@ -519,33 +506,6 @@ $0
); );
} }
#[test]
fn option_letelse_loop() {
check_edit(
"lete",
r#"
//- minicore: option
fn main() {
let bar = Some(true);
loop {
bar.$0
}
}
"#,
r#"
fn main() {
let bar = Some(true);
loop {
let Some($1) = bar else {
${2|continue,break,return|};
};
$0
}
}
"#,
);
}
#[test] #[test]
fn result_match() { fn result_match() {
check_edit( check_edit(