diff --git a/helix-term/src/commands/typed.rs b/helix-term/src/commands/typed.rs index c91c96a175105..da3b3c44c63e3 100644 --- a/helix-term/src/commands/typed.rs +++ b/helix-term/src/commands/typed.rs @@ -1318,7 +1318,11 @@ fn reload_all( // Ensure that the view is synced with the document's history. view.sync_changes(doc); - doc.reload(view, &cx.editor.diff_providers)?; + if let Err(error) = doc.reload(view, &cx.editor.diff_providers) { + cx.editor.set_error(format!("{}", error)); + continue; + } + if let Some(path) = doc.path() { cx.editor .language_servers diff --git a/helix-view/src/document.rs b/helix-view/src/document.rs index 5f3595eeb32a7..f813c7424a835 100644 --- a/helix-view/src/document.rs +++ b/helix-view/src/document.rs @@ -993,11 +993,13 @@ impl Document { provider_registry: &DiffProviderRegistry, ) -> Result<(), Error> { let encoding = self.encoding; - let path = self - .path() - .filter(|path| path.exists()) - .ok_or_else(|| anyhow!("can't find file to reload from {:?}", self.display_name()))? - .to_owned(); + let path = match self.path() { + None => return Ok(()), + Some(path) => match path.exists() { + true => path.to_owned(), + false => bail!("can't find file to reload from {:?}", self.display_name()), + }, + }; // Once we have a valid path we check if its readonly status has changed self.detect_readonly();