(&mut self)
| 448 | self.status_message = |
| 449 | Some("save or close unsaved files before opening a folder".to_owned()); |
| 450 | true |
| 451 | } |
| 452 | |
| 453 | #[cfg(not(target_arch = "wasm32"))] |
| 454 | pub(super) fn open_native_workspace_folder(&mut self, path: &Path) { |
| 455 | if self.block_open_folder_for_dirty_documents() { |
| 456 | return; |
| 457 | } |
| 458 | let native_fs = match NativeFs::open(path) { |
| 459 | Ok(fs) => fs, |
| 460 | Err(err) => { |
| 461 | self.status_message = Some(format!("open folder failed: {err}")); |
| 462 | return; |
| 463 | } |
| 464 | }; |
| 465 | let root_label = native_fs.root().display().to_string(); |
| 466 | match IdeWorkspace::new(Box::new(native_fs)) { |
| 467 | Ok(workspace) => { |
| 468 | // Remember this folder so "reopen last workspace" can restore it. |
| 469 | self.settings.last_workspace = Some(root_label.clone()); |
| 470 | self.replace_workspace(workspace, &root_label); |
| 471 | } |
| 472 | Err(err) => { |
no outgoing calls
no test coverage detected