From c8f5792a365414e0233d72b34ee33c849c0b9ed6 Mon Sep 17 00:00:00 2001 From: Daiki Ihara Date: Tue, 8 Dec 2020 01:17:13 +0900 Subject: Add handling file_system_edit in test assists --- crates/assists/src/assist_context.rs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'crates/assists/src/assist_context.rs') diff --git a/crates/assists/src/assist_context.rs b/crates/assists/src/assist_context.rs index 69499ea32..cd22cf17d 100644 --- a/crates/assists/src/assist_context.rs +++ b/crates/assists/src/assist_context.rs @@ -4,10 +4,10 @@ use std::mem; use algo::find_covering_element; use hir::Semantics; -use ide_db::base_db::{FileId, FileRange}; +use ide_db::base_db::{AnchoredPathBuf, FileId, FileRange}; use ide_db::{ label::Label, - source_change::{SourceChange, SourceFileEdit}, + source_change::{FileSystemEdit, SourceChange, SourceFileEdit}, RootDatabase, }; use syntax::{ @@ -209,6 +209,7 @@ pub(crate) struct AssistBuilder { file_id: FileId, is_snippet: bool, source_file_edits: Vec, + file_system_edits: Vec, } impl AssistBuilder { @@ -218,6 +219,7 @@ impl AssistBuilder { file_id, is_snippet: false, source_file_edits: Vec::default(), + file_system_edits: Vec::default(), } } @@ -282,12 +284,18 @@ impl AssistBuilder { algo::diff(&node, &new).into_text_edit(&mut self.edit); } } + pub(crate) fn create_file(&mut self, dst: AnchoredPathBuf, content: impl Into) { + let file_system_edit = FileSystemEdit::CreateFile { dst: dst.clone() }; + self.file_system_edits.push(file_system_edit); + self.edit_file(dst.anchor); + self.insert(TextSize::from(0), content) + } fn finish(mut self) -> SourceChange { self.commit(); SourceChange { source_file_edits: mem::take(&mut self.source_file_edits), - file_system_edits: Default::default(), + file_system_edits: mem::take(&mut self.file_system_edits), is_snippet: self.is_snippet, } } -- cgit v1.2.3 From 7a2eebde22b1013b73706a11c4a89e969c36ed2b Mon Sep 17 00:00:00 2001 From: Daiki Ihara Date: Thu, 17 Dec 2020 22:09:55 +0900 Subject: Add initial_contents field for CreateFile --- crates/assists/src/assist_context.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'crates/assists/src/assist_context.rs') diff --git a/crates/assists/src/assist_context.rs b/crates/assists/src/assist_context.rs index cd22cf17d..80cf9aba1 100644 --- a/crates/assists/src/assist_context.rs +++ b/crates/assists/src/assist_context.rs @@ -285,10 +285,9 @@ impl AssistBuilder { } } pub(crate) fn create_file(&mut self, dst: AnchoredPathBuf, content: impl Into) { - let file_system_edit = FileSystemEdit::CreateFile { dst: dst.clone() }; + let file_system_edit = + FileSystemEdit::CreateFile { dst: dst.clone(), initial_contents: content.into() }; self.file_system_edits.push(file_system_edit); - self.edit_file(dst.anchor); - self.insert(TextSize::from(0), content) } fn finish(mut self) -> SourceChange { -- cgit v1.2.3