]> git.lizzy.rs Git - rust.git/commitdiff
Remove LocalEdit usage
authorWilco Kusee <wilcokusee@gmail.com>
Thu, 21 Mar 2019 20:42:22 +0000 (21:42 +0100)
committerWilco Kusee <wilcokusee@gmail.com>
Fri, 22 Mar 2019 16:12:32 +0000 (17:12 +0100)
crates/ra_ide_api/src/join_lines.rs
crates/ra_ide_api/src/lib.rs

index d6274dc97f56b21e1058482b5d33bb54a9f9b34b..6e84e4b105ff3d39035033ed4eb0735207e28e60 100644 (file)
@@ -1,4 +1,5 @@
 use itertools::Itertools;
+use ra_db::FileRange;
 use ra_syntax::{
     SourceFile, TextRange, TextUnit, AstNode, SyntaxNode,
     SyntaxKind::{self, WHITESPACE, COMMA, R_CURLY, R_PAREN, R_BRACK},
 use ra_fmt::{
     compute_ws, extract_trivial_expression
 };
-use ra_text_edit::TextEditBuilder;
-use ra_ide_api_light::LocalEdit;
+use ra_text_edit::{TextEdit, TextEditBuilder};
 
-pub fn join_lines(file: &SourceFile, range: TextRange) -> LocalEdit {
-    let range = if range.is_empty() {
+pub fn join_lines(file: &SourceFile, frange: FileRange) -> TextEdit {
+    let range = if frange.range.is_empty() {
         let syntax = file.syntax();
-        let text = syntax.text().slice(range.start()..);
+        let text = syntax.text().slice(frange.range.start()..);
         let pos = match text.find('\n') {
-            None => {
-                return LocalEdit {
-                    label: "join lines".to_string(),
-                    edit: TextEditBuilder::default().finish(),
-                    cursor_position: None,
-                };
-            }
+            None => return TextEditBuilder::default().finish(),
             Some(pos) => pos,
         };
-        TextRange::offset_len(range.start() + pos, TextUnit::of_char('\n'))
+        TextRange::offset_len(frange.range.start() + pos, TextUnit::of_char('\n'))
     } else {
-        range
+        frange.range
     };
 
     let node = find_covering_node(file.syntax(), range);
@@ -51,7 +45,7 @@ pub fn join_lines(file: &SourceFile, range: TextRange) -> LocalEdit {
         }
     }
 
-    LocalEdit { label: "join lines".to_string(), edit: edit.finish(), cursor_position: None }
+    edit.finish()
 }
 
 fn remove_newline(
index 9e76dabff78e1f95b9149ab7d40c2b17ed3f1c53..d4dba1eeb4d86e39bf32be756d163a8b91cf9228 100644 (file)
@@ -279,7 +279,14 @@ pub fn syntax_tree(&self, file_id: FileId, text_range: Option<TextRange>) -> Str
     /// stuff like trailing commas.
     pub fn join_lines(&self, frange: FileRange) -> SourceChange {
         let file = self.db.parse(frange.file_id);
-        SourceChange::from_local_edit(frange.file_id, join_lines::join_lines(&file, frange.range))
+        let file_edit =
+            SourceFileEdit { file_id: frange.file_id, edit: join_lines::join_lines(&file, frange) };
+        SourceChange {
+            label: "join lines".to_string(),
+            source_file_edits: vec![file_edit],
+            file_system_edits: vec![],
+            cursor_position: None,
+        }
     }
 
     /// Returns an edit which should be applied when opening a new line, fixing