mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-27 05:23:24 +00:00
Merge #6676
6676: Minor cleanup r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
This commit is contained in:
commit
13025ae2a1
3 changed files with 31 additions and 36 deletions
|
@ -5,7 +5,7 @@ use syntax::{
|
||||||
|
|
||||||
use crate::{utils::test_related_attribute, AssistContext, AssistId, AssistKind, Assists};
|
use crate::{utils::test_related_attribute, AssistContext, AssistId, AssistKind, Assists};
|
||||||
|
|
||||||
// Assist: ignore_test
|
// Assist: toggle_ignore
|
||||||
//
|
//
|
||||||
// Adds `#[ignore]` attribute to the test.
|
// Adds `#[ignore]` attribute to the test.
|
||||||
//
|
//
|
||||||
|
@ -23,20 +23,20 @@ use crate::{utils::test_related_attribute, AssistContext, AssistId, AssistKind,
|
||||||
// assert_eq!(2 + 2, 5);
|
// assert_eq!(2 + 2, 5);
|
||||||
// }
|
// }
|
||||||
// ```
|
// ```
|
||||||
pub(crate) fn ignore_test(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
|
pub(crate) fn toggle_ignore(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
|
||||||
let attr: ast::Attr = ctx.find_node_at_offset()?;
|
let attr: ast::Attr = ctx.find_node_at_offset()?;
|
||||||
let func = attr.syntax().parent().and_then(ast::Fn::cast)?;
|
let func = attr.syntax().parent().and_then(ast::Fn::cast)?;
|
||||||
let attr = test_related_attribute(&func)?;
|
let attr = test_related_attribute(&func)?;
|
||||||
|
|
||||||
match has_ignore_attribute(&func) {
|
match has_ignore_attribute(&func) {
|
||||||
None => acc.add(
|
None => acc.add(
|
||||||
AssistId("ignore_test", AssistKind::None),
|
AssistId("toggle_ignore", AssistKind::None),
|
||||||
"Ignore this test",
|
"Ignore this test",
|
||||||
attr.syntax().text_range(),
|
attr.syntax().text_range(),
|
||||||
|builder| builder.insert(attr.syntax().text_range().end(), &format!("\n#[ignore]")),
|
|builder| builder.insert(attr.syntax().text_range().end(), &format!("\n#[ignore]")),
|
||||||
),
|
),
|
||||||
Some(ignore_attr) => acc.add(
|
Some(ignore_attr) => acc.add(
|
||||||
AssistId("unignore_test", AssistKind::None),
|
AssistId("toggle_ignore", AssistKind::None),
|
||||||
"Re-enable this test",
|
"Re-enable this test",
|
||||||
ignore_attr.syntax().text_range(),
|
ignore_attr.syntax().text_range(),
|
||||||
|builder| {
|
|builder| {
|
||||||
|
@ -55,24 +55,19 @@ pub(crate) fn ignore_test(acc: &mut Assists, ctx: &AssistContext) -> Option<()>
|
||||||
}
|
}
|
||||||
|
|
||||||
fn has_ignore_attribute(fn_def: &ast::Fn) -> Option<ast::Attr> {
|
fn has_ignore_attribute(fn_def: &ast::Fn) -> Option<ast::Attr> {
|
||||||
fn_def.attrs().find_map(|attr| {
|
fn_def.attrs().find(|attr| attr.path().map(|it| it.syntax().text() == "ignore") == Some(true))
|
||||||
if attr.path()?.syntax().text() == "ignore" {
|
|
||||||
Some(attr)
|
|
||||||
} else {
|
|
||||||
None
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::ignore_test;
|
|
||||||
use crate::tests::check_assist;
|
use crate::tests::check_assist;
|
||||||
|
|
||||||
|
use super::*;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_base_case() {
|
fn test_base_case() {
|
||||||
check_assist(
|
check_assist(
|
||||||
ignore_test,
|
toggle_ignore,
|
||||||
r#"
|
r#"
|
||||||
#[test<|>]
|
#[test<|>]
|
||||||
fn test() {}
|
fn test() {}
|
||||||
|
@ -88,7 +83,7 @@ mod tests {
|
||||||
#[test]
|
#[test]
|
||||||
fn test_unignore() {
|
fn test_unignore() {
|
||||||
check_assist(
|
check_assist(
|
||||||
ignore_test,
|
toggle_ignore,
|
||||||
r#"
|
r#"
|
||||||
#[test<|>]
|
#[test<|>]
|
||||||
#[ignore]
|
#[ignore]
|
|
@ -141,7 +141,6 @@ mod handlers {
|
||||||
mod generate_function;
|
mod generate_function;
|
||||||
mod generate_impl;
|
mod generate_impl;
|
||||||
mod generate_new;
|
mod generate_new;
|
||||||
mod ignore_test;
|
|
||||||
mod infer_function_return_type;
|
mod infer_function_return_type;
|
||||||
mod inline_local_variable;
|
mod inline_local_variable;
|
||||||
mod introduce_named_lifetime;
|
mod introduce_named_lifetime;
|
||||||
|
@ -164,6 +163,7 @@ mod handlers {
|
||||||
mod replace_string_with_char;
|
mod replace_string_with_char;
|
||||||
mod replace_unwrap_with_match;
|
mod replace_unwrap_with_match;
|
||||||
mod split_import;
|
mod split_import;
|
||||||
|
mod toggle_ignore;
|
||||||
mod unwrap_block;
|
mod unwrap_block;
|
||||||
mod wrap_return_type_in_result;
|
mod wrap_return_type_in_result;
|
||||||
|
|
||||||
|
@ -190,7 +190,6 @@ mod handlers {
|
||||||
generate_function::generate_function,
|
generate_function::generate_function,
|
||||||
generate_impl::generate_impl,
|
generate_impl::generate_impl,
|
||||||
generate_new::generate_new,
|
generate_new::generate_new,
|
||||||
ignore_test::ignore_test,
|
|
||||||
infer_function_return_type::infer_function_return_type,
|
infer_function_return_type::infer_function_return_type,
|
||||||
inline_local_variable::inline_local_variable,
|
inline_local_variable::inline_local_variable,
|
||||||
introduce_named_lifetime::introduce_named_lifetime,
|
introduce_named_lifetime::introduce_named_lifetime,
|
||||||
|
@ -215,6 +214,7 @@ mod handlers {
|
||||||
replace_qualified_name_with_use::replace_qualified_name_with_use,
|
replace_qualified_name_with_use::replace_qualified_name_with_use,
|
||||||
replace_unwrap_with_match::replace_unwrap_with_match,
|
replace_unwrap_with_match::replace_unwrap_with_match,
|
||||||
split_import::split_import,
|
split_import::split_import,
|
||||||
|
toggle_ignore::toggle_ignore,
|
||||||
unwrap_block::unwrap_block,
|
unwrap_block::unwrap_block,
|
||||||
wrap_return_type_in_result::wrap_return_type_in_result,
|
wrap_return_type_in_result::wrap_return_type_in_result,
|
||||||
// These are manually sorted for better priorities
|
// These are manually sorted for better priorities
|
||||||
|
|
|
@ -473,26 +473,6 @@ impl<T: Clone> Ctx<T> {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn doctest_ignore_test() {
|
|
||||||
check_doc_test(
|
|
||||||
"ignore_test",
|
|
||||||
r#####"
|
|
||||||
<|>#[test]
|
|
||||||
fn arithmetics {
|
|
||||||
assert_eq!(2 + 2, 5);
|
|
||||||
}
|
|
||||||
"#####,
|
|
||||||
r#####"
|
|
||||||
#[test]
|
|
||||||
#[ignore]
|
|
||||||
fn arithmetics {
|
|
||||||
assert_eq!(2 + 2, 5);
|
|
||||||
}
|
|
||||||
"#####,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn doctest_infer_function_return_type() {
|
fn doctest_infer_function_return_type() {
|
||||||
check_doc_test(
|
check_doc_test(
|
||||||
|
@ -978,6 +958,26 @@ use std::{collections::HashMap};
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn doctest_toggle_ignore() {
|
||||||
|
check_doc_test(
|
||||||
|
"toggle_ignore",
|
||||||
|
r#####"
|
||||||
|
<|>#[test]
|
||||||
|
fn arithmetics {
|
||||||
|
assert_eq!(2 + 2, 5);
|
||||||
|
}
|
||||||
|
"#####,
|
||||||
|
r#####"
|
||||||
|
#[test]
|
||||||
|
#[ignore]
|
||||||
|
fn arithmetics {
|
||||||
|
assert_eq!(2 + 2, 5);
|
||||||
|
}
|
||||||
|
"#####,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn doctest_unwrap_block() {
|
fn doctest_unwrap_block() {
|
||||||
check_doc_test(
|
check_doc_test(
|
||||||
|
|
Loading…
Reference in a new issue