From 6675d4c57641135a73658d9ba66b78205bb45742 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Sun, 25 Oct 2020 14:27:32 +0100 Subject: Don't keep parens around with remove-dbg when encountering method chaining --- crates/assists/src/handlers/remove_dbg.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'crates/assists/src/handlers') diff --git a/crates/assists/src/handlers/remove_dbg.rs b/crates/assists/src/handlers/remove_dbg.rs index e10616779..e7072d2b9 100644 --- a/crates/assists/src/handlers/remove_dbg.rs +++ b/crates/assists/src/handlers/remove_dbg.rs @@ -119,6 +119,7 @@ fn needs_parentheses_around_macro_contents(macro_contents: Vec) - let symbol_not_in_bracket = unpaired_brackets_in_contents.is_empty(); if symbol_not_in_bracket && symbol_kind != SyntaxKind::COLON + && symbol_kind != SyntaxKind::DOT && symbol_kind.is_punct() { return true; @@ -242,6 +243,25 @@ fn main() { check_assist(remove_dbg, r#"let res = <|>dbg![2 + 2] * 5"#, r#"let res = (2 + 2) * 5"#); } + #[test] + fn test_remove_dbg_method_chaining() { + check_assist( + remove_dbg, + r#"let res = <|>dbg!(foo().bar()).baz();"#, + r#"let res = foo().bar().baz();"#, + ); + check_assist( + remove_dbg, + r#"let res = <|>dbg!(foo.bar()).baz();"#, + r#"let res = foo.bar().baz();"#, + ); + } + + #[test] + fn test_remove_dbg_field_chaining() { + check_assist(remove_dbg, r#"let res = <|>dbg!(foo.bar).baz;"#, r#"let res = foo.bar.baz;"#); + } + #[test] fn test_remove_dbg_from_inside_fn() { check_assist_target( -- cgit v1.2.3