Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-db/src/source_change.rs')
-rw-r--r--crates/ide-db/src/source_change.rs27
1 files changed, 14 insertions, 13 deletions
diff --git a/crates/ide-db/src/source_change.rs b/crates/ide-db/src/source_change.rs
index fba377417e..a85358098f 100644
--- a/crates/ide-db/src/source_change.rs
+++ b/crates/ide-db/src/source_change.rs
@@ -6,9 +6,10 @@
use std::{collections::hash_map::Entry, iter, mem};
use crate::{assists::Command, SnippetCap};
-use base_db::{AnchoredPathBuf, FileId};
+use base_db::AnchoredPathBuf;
use itertools::Itertools;
use nohash_hasher::IntMap;
+use span::FileId;
use stdx::never;
use syntax::{
algo, AstNode, SyntaxElement, SyntaxNode, SyntaxNodePtr, SyntaxToken, TextRange, TextSize,
@@ -32,28 +33,28 @@ impl SourceChange {
SourceChange { source_file_edits, file_system_edits, is_snippet: false }
}
- pub fn from_text_edit(file_id: FileId, edit: TextEdit) -> Self {
+ pub fn from_text_edit(file_id: impl Into<FileId>, edit: TextEdit) -> Self {
SourceChange {
- source_file_edits: iter::once((file_id, (edit, None))).collect(),
+ source_file_edits: iter::once((file_id.into(), (edit, None))).collect(),
..Default::default()
}
}
/// Inserts a [`TextEdit`] for the given [`FileId`]. This properly handles merging existing
/// edits for a file if some already exist.
- pub fn insert_source_edit(&mut self, file_id: FileId, edit: TextEdit) {
- self.insert_source_and_snippet_edit(file_id, edit, None)
+ pub fn insert_source_edit(&mut self, file_id: impl Into<FileId>, edit: TextEdit) {
+ self.insert_source_and_snippet_edit(file_id.into(), edit, None)
}
/// Inserts a [`TextEdit`] and potentially a [`SnippetEdit`] for the given [`FileId`].
/// This properly handles merging existing edits for a file if some already exist.
pub fn insert_source_and_snippet_edit(
&mut self,
- file_id: FileId,
+ file_id: impl Into<FileId>,
edit: TextEdit,
snippet_edit: Option<SnippetEdit>,
) {
- match self.source_file_edits.entry(file_id) {
+ match self.source_file_edits.entry(file_id.into()) {
Entry::Occupied(mut entry) => {
let value = entry.get_mut();
never!(value.0.union(edit).is_err(), "overlapping edits for same file");
@@ -231,10 +232,10 @@ impl TreeMutator {
}
impl SourceChangeBuilder {
- pub fn new(file_id: FileId) -> SourceChangeBuilder {
+ pub fn new(file_id: impl Into<FileId>) -> SourceChangeBuilder {
SourceChangeBuilder {
edit: TextEdit::builder(),
- file_id,
+ file_id: file_id.into(),
source_change: SourceChange::default(),
command: None,
mutated_tree: None,
@@ -242,9 +243,9 @@ impl SourceChangeBuilder {
}
}
- pub fn edit_file(&mut self, file_id: FileId) {
+ pub fn edit_file(&mut self, file_id: impl Into<FileId>) {
self.commit();
- self.file_id = file_id;
+ self.file_id = file_id.into();
}
fn commit(&mut self) {
@@ -300,8 +301,8 @@ impl SourceChangeBuilder {
let file_system_edit = FileSystemEdit::CreateFile { dst, initial_contents: content.into() };
self.source_change.push_file_system_edit(file_system_edit);
}
- pub fn move_file(&mut self, src: FileId, dst: AnchoredPathBuf) {
- let file_system_edit = FileSystemEdit::MoveFile { src, dst };
+ pub fn move_file(&mut self, src: impl Into<FileId>, dst: AnchoredPathBuf) {
+ let file_system_edit = FileSystemEdit::MoveFile { src: src.into(), dst };
self.source_change.push_file_system_edit(file_system_edit);
}