From 37754b0fd512310bf2cff7ee18d7e8c4d35b441a Mon Sep 17 00:00:00 2001 From: R Aadarsh Date: Sun, 5 Oct 2025 14:06:57 +0530 Subject: [PATCH] Add a call to `open_abs_path` to enable opening of files from `InvalidBufferView` --- crates/encodings/src/selectors.rs | 36 +++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/crates/encodings/src/selectors.rs b/crates/encodings/src/selectors.rs index f3e26f8bf5842ffffb6c1baec6e9bce7b6f64a05..893842723c60761742fbbb91ab1ee5c2b334bcdf 100644 --- a/crates/encodings/src/selectors.rs +++ b/crates/encodings/src/selectors.rs @@ -426,6 +426,15 @@ pub mod encoding { } fn confirm(&mut self, _: bool, window: &mut Window, cx: &mut Context>) { + let workspace = self + .selector + .upgrade() + .unwrap() + .read(cx) + .workspace + .upgrade() + .unwrap(); + if let Some(buffer) = &self.buffer && let Some(buffer) = buffer.upgrade() { @@ -440,15 +449,6 @@ pub mod encoding { } else if self.action == Action::Save { let executor = cx.background_executor().clone(); - let workspace = self - .selector - .upgrade() - .unwrap() - .read(cx) - .workspace - .upgrade() - .unwrap(); - executor .spawn(workspace.update(cx, |workspace, cx| { workspace @@ -458,6 +458,24 @@ pub mod encoding { .detach(); } }); + } else { + workspace.update(cx, |workspace, cx| { + workspace + .open_abs_path( + self.selector + .upgrade() + .unwrap() + .read(cx) + .path + .as_ref() + .unwrap() + .clone(), + Default::default(), + window, + cx, + ) + .detach(); + }) } self.dismissed(window, cx); }