From b28bce2e3c52ce39ead11b2e2a7f7020253e44a8 Mon Sep 17 00:00:00 2001 From: Mikayla Maki Date: Fri, 10 Mar 2023 12:27:54 -0800 Subject: [PATCH] Merge pull request #2264 from zed-industries/make-terminal-default-better Make terminal fallback correctly when unable to deserialize a cwd --- crates/terminal_view/src/terminal_view.rs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/crates/terminal_view/src/terminal_view.rs b/crates/terminal_view/src/terminal_view.rs index 3821185ec02e9d1981162863efa1a1708c9e3f97..b9a5beae93de30292a5b89629c85591796f5e02d 100644 --- a/crates/terminal_view/src/terminal_view.rs +++ b/crates/terminal_view/src/terminal_view.rs @@ -653,7 +653,7 @@ impl Item for TerminalView { fn deserialize( project: ModelHandle, - _workspace: WeakViewHandle, + workspace: WeakViewHandle, workspace_id: workspace::WorkspaceId, item_id: workspace::ItemId, cx: &mut ViewContext, @@ -663,7 +663,18 @@ impl Item for TerminalView { let cwd = TERMINAL_DB .get_working_directory(item_id, workspace_id) .log_err() - .flatten(); + .flatten() + .or_else(|| { + cx.read(|cx| { + let strategy = cx.global::().terminal_strategy(); + workspace + .upgrade(cx) + .map(|workspace| { + get_working_directory(workspace.read(cx), cx, strategy) + }) + .flatten() + }) + }); cx.update(|cx| { let terminal = project.update(cx, |project, cx| {