aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_assists/src/ast_editor.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_assists/src/ast_editor.rs')
-rw-r--r--crates/ra_assists/src/ast_editor.rs15
1 files changed, 11 insertions, 4 deletions
diff --git a/crates/ra_assists/src/ast_editor.rs b/crates/ra_assists/src/ast_editor.rs
index 5bf1fc0ed..7ef58aa8e 100644
--- a/crates/ra_assists/src/ast_editor.rs
+++ b/crates/ra_assists/src/ast_editor.rs
@@ -110,13 +110,20 @@ impl AstEditor<ast::NamedFieldList> {
110 110
111 let position = match position { 111 let position = match position {
112 InsertPosition::First => after_l_curly!(), 112 InsertPosition::First => after_l_curly!(),
113 InsertPosition::Last => match self.ast().fields().last() { 113 InsertPosition::Last => {
114 Some(it) => after_field!(it), 114 if !is_multiline {
115 None => after_l_curly!(), 115 // don't insert comma before curly
116 }, 116 to_insert.pop();
117 }
118 match self.ast().fields().last() {
119 Some(it) => after_field!(it),
120 None => after_l_curly!(),
121 }
122 }
117 InsertPosition::Before(anchor) => InsertPosition::Before(anchor.syntax().into()), 123 InsertPosition::Before(anchor) => InsertPosition::Before(anchor.syntax().into()),
118 InsertPosition::After(anchor) => after_field!(anchor), 124 InsertPosition::After(anchor) => after_field!(anchor),
119 }; 125 };
126
120 self.ast = self.insert_children(position, to_insert.iter().cloned()); 127 self.ast = self.insert_children(position, to_insert.iter().cloned());
121 } 128 }
122 129