aboutsummaryrefslogtreecommitdiff
path: root/src/app/api.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/app/api.rs')
-rw-r--r--src/app/api.rs22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/app/api.rs b/src/app/api.rs
index 1b5bad71..c56a07a1 100644
--- a/src/app/api.rs
+++ b/src/app/api.rs
@@ -39,6 +39,14 @@ impl App {
segment_index,
result,
} => self.handle_tab_bar_command_finished(generation, segment_index, result),
+ AppEvent::WorktreeReadFinished(result) => {
+ let changes_workspace = matches!(
+ &result.request.method,
+ crate::api::schema::Method::WorktreeOpen(_)
+ );
+ self.handle_api_worktree_read_finished(*result);
+ changes_workspace
+ }
ev @ AppEvent::TerminalBell { .. } => {
self.handle_internal_event(ev);
false
@@ -157,6 +165,11 @@ impl App {
return Vec::new();
}
+ if let AppEvent::WorktreeReadFinished(result) = ev {
+ self.handle_api_worktree_read_finished(*result);
+ return Vec::new();
+ }
+
if let AppEvent::WorktreeAddFinished(result) = ev {
self.handle_api_worktree_add_finished(*result);
return Vec::new();
@@ -1035,7 +1048,13 @@ impl App {
Method::WorkspaceClose(target) => {
return self.handle_workspace_close(request.id, target);
}
- Method::WorktreeList(params) => return self.handle_worktree_list(request.id, params),
+ Method::WorktreeList(_) | Method::WorktreeOpen(_) => {
+ return responses::encode_error(
+ request.id,
+ "invalid_request",
+ "worktree discovery is handled asynchronously by the app runtime",
+ );
+ }
Method::WorktreeCreate(params) => {
let _ = params;
return responses::encode_error(
@@ -1044,7 +1063,6 @@ impl App {
"worktree.create is handled asynchronously by the app runtime",
);
}
- Method::WorktreeOpen(params) => return self.handle_worktree_open(request.id, params),
Method::WorktreeRemove(params) => {
let _ = params;
return responses::encode_error(