From 0063f03e86f4222a5027720142eb20db4adc485d Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 21 Dec 2018 11:24:16 +0300 Subject: hide atom edits a bit --- crates/ra_analysis/src/imp.rs | 2 +- crates/ra_analysis/src/lib.rs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'crates/ra_analysis') diff --git a/crates/ra_analysis/src/imp.rs b/crates/ra_analysis/src/imp.rs index cefe5a748..a7be56f5a 100644 --- a/crates/ra_analysis/src/imp.rs +++ b/crates/ra_analysis/src/imp.rs @@ -520,7 +520,7 @@ impl SourceChange { pub(crate) fn from_local_edit(file_id: FileId, label: &str, edit: LocalEdit) -> SourceChange { let file_edit = SourceFileEdit { file_id, - edits: edit.edit.into_atoms(), + edit: edit.edit, }; SourceChange { label: label.to_string(), diff --git a/crates/ra_analysis/src/lib.rs b/crates/ra_analysis/src/lib.rs index d5725ef2e..2fb11365c 100644 --- a/crates/ra_analysis/src/lib.rs +++ b/crates/ra_analysis/src/lib.rs @@ -20,7 +20,7 @@ use std::{fmt, sync::Arc}; use rustc_hash::FxHashMap; use ra_syntax::{SourceFileNode, TextRange, TextUnit}; -use ra_text_edit::AtomTextEdit; +use ra_text_edit::TextEdit; use rayon::prelude::*; use relative_path::RelativePathBuf; @@ -167,7 +167,7 @@ pub struct SourceChange { #[derive(Debug)] pub struct SourceFileEdit { pub file_id: FileId, - pub edits: Vec, + pub edit: TextEdit, } #[derive(Debug)] -- cgit v1.2.3 From b5b44659a42cf982590519317ede9ead354f9c4e Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 21 Dec 2018 12:18:14 +0300 Subject: edits use source-root API --- crates/ra_analysis/src/imp.rs | 10 ++++++---- crates/ra_analysis/src/lib.rs | 7 ++++--- 2 files changed, 10 insertions(+), 7 deletions(-) (limited to 'crates/ra_analysis') diff --git a/crates/ra_analysis/src/imp.rs b/crates/ra_analysis/src/imp.rs index a7be56f5a..5701e1ae2 100644 --- a/crates/ra_analysis/src/imp.rs +++ b/crates/ra_analysis/src/imp.rs @@ -368,10 +368,11 @@ impl AnalysisImpl { .collect::>(); if let Some(m) = source_binder::module_from_file_id(&*self.db, file_id)? { for (name_node, problem) in m.problems(&*self.db) { + let source_root = self.db.file_source_root(file_id); let diag = match problem { Problem::UnresolvedModule { candidate } => { let create_file = FileSystemEdit::CreateFile { - anchor: file_id, + source_root, path: candidate.clone(), }; let fix = SourceChange { @@ -388,11 +389,12 @@ impl AnalysisImpl { } Problem::NotDirOwner { move_to, candidate } => { let move_file = FileSystemEdit::MoveFile { - file: file_id, - path: move_to.clone(), + src: file_id, + dst_source_root: source_root, + dst_path: move_to.clone(), }; let create_file = FileSystemEdit::CreateFile { - anchor: file_id, + source_root, path: move_to.join(candidate), }; let fix = SourceChange { diff --git a/crates/ra_analysis/src/lib.rs b/crates/ra_analysis/src/lib.rs index 2fb11365c..c7e7dc1c0 100644 --- a/crates/ra_analysis/src/lib.rs +++ b/crates/ra_analysis/src/lib.rs @@ -173,12 +173,13 @@ pub struct SourceFileEdit { #[derive(Debug)] pub enum FileSystemEdit { CreateFile { - anchor: FileId, + source_root: SourceRootId, path: RelativePathBuf, }, MoveFile { - file: FileId, - path: RelativePathBuf, + src: FileId, + dst_source_root: SourceRootId, + dst_path: RelativePathBuf, }, } -- cgit v1.2.3 From fd927ea3a9ea687ba11b01e56579f0287221f55c Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 21 Dec 2018 12:30:28 +0300 Subject: use root-relative paths --- crates/ra_analysis/tests/tests.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'crates/ra_analysis') diff --git a/crates/ra_analysis/tests/tests.rs b/crates/ra_analysis/tests/tests.rs index 889b568b9..67738da48 100644 --- a/crates/ra_analysis/tests/tests.rs +++ b/crates/ra_analysis/tests/tests.rs @@ -81,7 +81,7 @@ fn test_unresolved_module_diagnostic() { fix: Some(SourceChange { label: "create module", source_file_edits: [], - file_system_edits: [CreateFile { anchor: FileId(1), path: "../foo.rs" }], + file_system_edits: [CreateFile { source_root: SourceRootId(0), path: "foo.rs" }], cursor_position: None }) }]"#, &diagnostics, ); -- cgit v1.2.3