beta version for folder rename
This commit is contained in:
parent
c08391ce32
commit
0d86e22229
3 changed files with 34 additions and 4 deletions
|
|
@ -85,8 +85,9 @@ pub fn server_capabilities(client_caps: &ClientCapabilities) -> ServerCapabiliti
|
|||
matches: Some(FileOperationPatternKind::File),
|
||||
options: None,
|
||||
},
|
||||
},
|
||||
FileOperationFilter {
|
||||
scheme: Some(String::from("untitled")),
|
||||
scheme: Some(String::from("file")),
|
||||
pattern: FileOperationPattern {
|
||||
glob: String::from("**"),
|
||||
matches: Some(FileOperationPatternKind::Folder),
|
||||
|
|
|
|||
|
|
@ -432,9 +432,26 @@ pub(crate) fn handle_will_rename_files(
|
|||
// Limit to single-level moves for now.
|
||||
match (from_path.parent(), to_path.parent()) {
|
||||
(Some(p1), Some(p2)) if p1 == p2 => {
|
||||
let new_name = to_path.file_stem()?;
|
||||
let new_name = new_name.to_str()?;
|
||||
Some((snap.url_to_file_id(&from).ok()?, new_name.to_string()))
|
||||
if from_path.is_dir() {
|
||||
// This is a quick implement, try to use will_rename_file code.
|
||||
// imitate change the older_folder/mod.rs to older_folder/new_folder.rs
|
||||
let imitate_from_path = from_path.join("mod.rs");
|
||||
let new_from_url = imitate_from_path.to_str()?;
|
||||
let new_from_url = Url::parse(new_from_url).ok()?;
|
||||
|
||||
let new_folder_name = to_path.file_name()?.to_str()?;
|
||||
let mut imite_new_file_name = new_folder_name.to_string();
|
||||
imite_new_file_name.push_str(".rs");
|
||||
let new_to = from_path.join(imite_new_file_name);
|
||||
let new_to = new_to.to_str()?;
|
||||
|
||||
Some((snap.url_to_file_id(&new_from_url).ok()?, new_to.to_string()))
|
||||
}
|
||||
else{
|
||||
let new_name = to_path.file_stem()?;
|
||||
let new_name = new_name.to_str()?;
|
||||
Some((snap.url_to_file_id(&from).ok()?, new_name.to_string()))
|
||||
}
|
||||
}
|
||||
_ => None,
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue