From f47f58ffe5fb494c883ec4fd120cdd63ad31cc68 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 24 Aug 2018 00:13:16 +0300 Subject: better join-lines --- crates/libeditor/src/typing.rs | 4 +++- crates/libeditor/tests/test.rs | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) (limited to 'crates/libeditor') diff --git a/crates/libeditor/src/typing.rs b/crates/libeditor/src/typing.rs index 918f2325c..04021d164 100644 --- a/crates/libeditor/src/typing.rs +++ b/crates/libeditor/src/typing.rs @@ -72,9 +72,11 @@ fn remove_newline( if node.kind() == WHITESPACE && node_text.bytes().filter(|&b| b == b'\n').count() == 1 { match (node.prev_sibling(), node.next_sibling()) { (Some(prev), Some(next)) => { + let range = TextRange::from_to(prev.range().start(), node.range().end()); if prev.kind() == COMMA && (next.kind() == R_PAREN || next.kind() == R_BRACK) { - let range = TextRange::from_to(prev.range().start(), node.range().end()); edit.delete(range); + } else if prev.kind() == COMMA && next.kind() == R_CURLY { + edit.replace(range, " ".to_string()); } else { edit.replace( node.range(), diff --git a/crates/libeditor/tests/test.rs b/crates/libeditor/tests/test.rs index e5088ad27..858c6c4a6 100644 --- a/crates/libeditor/tests/test.rs +++ b/crates/libeditor/tests/test.rs @@ -223,6 +223,14 @@ fn foo() { fn foo() { foo(1, 2, 3) } +"); + + do_check(r" +struct Foo <|>{ + f: u32, +}<|> +", r" +struct Foo { f: u32 } "); } -- cgit v1.2.3