Add a prototype with a multi buffer having all project git changes (#21543)

Part of https://github.com/zed-industries/zed/issues/20925

This prototype is behind a feature flag and being merged to avoid
conflicts with further git-related resturctures.
To be a proper, public feature, this needs at least:
* showing deleted files
* better performance 
* randomized tests
* `TODO`s in the `project_diff.rs` file fixed

The good thing is, >90% of the changes are in the `project_diff.rs` file
only, have a basic test and already work on simple cases.

Release Notes:

- N/A

---------

Co-authored-by: Thorsten Ball <thorsten@zed.dev>
Co-authored-by: Cole Miller <cole@zed.dev>
This commit is contained in:
Kirill Bulatov 2024-12-04 23:36:36 +02:00 committed by GitHub
parent f0fac41ca4
commit 8d18dfa4c1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 1269 additions and 27 deletions

View file

@ -810,7 +810,7 @@ impl Workspace {
this.collaborator_left(*peer_id, cx);
}
project::Event::WorktreeRemoved(_) | project::Event::WorktreeAdded => {
project::Event::WorktreeRemoved(_) | project::Event::WorktreeAdded(_) => {
this.update_window_title(cx);
this.serialize_workspace(cx);
}
@ -832,7 +832,7 @@ impl Workspace {
cx.remove_window();
}
project::Event::DeletedEntry(entry_id) => {
project::Event::DeletedEntry(_, entry_id) => {
for pane in this.panes.iter() {
pane.update(cx, |pane, cx| {
pane.handle_deleted_project_item(*entry_id, cx)