Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
e3626c0
Add scarier warning messages on destructive file ops
marcocondrache Jan 18, 2026
ec82d14
Add undo/redo of renames in project panel
marcocondrache Jan 18, 2026
1cf99e0
Add trash & restore operations to `Fs`
marcocondrache Jan 18, 2026
245c593
avoid intermediate layer
marcocondrache Jan 18, 2026
99aee34
leftovers
marcocondrache Jan 18, 2026
ca80b74
leftovers pt2
marcocondrache Jan 18, 2026
a718770
leftovers pt3
marcocondrache Jan 18, 2026
a62c39d
let's store trash inside fs
marcocondrache Jan 18, 2026
ab5ca4c
register the undo operation
marcocondrache Jan 18, 2026
0a00c81
simplify trash item
marcocondrache Jan 18, 2026
7eb5a84
that's too much
marcocondrache Jan 18, 2026
efaa1b7
just a wrapper
marcocondrache Jan 18, 2026
6c359d0
fix double update panic
marcocondrache Jan 18, 2026
867f406
better naming
marcocondrache Jan 19, 2026
d8e6ab4
same
marcocondrache Jan 19, 2026
ef80504
add remote restore
marcocondrache Jan 19, 2026
705f0d1
use a registry to track items
marcocondrache Jan 19, 2026
a418e10
Revert "use a registry to track items"
marcocondrache Jan 19, 2026
4a94a2c
bring trash-rs in
marcocondrache Jan 19, 2026
a37ebae
let's do things the correct way
marcocondrache Jan 19, 2026
b27a45a
use centralized trash
marcocondrache Jan 19, 2026
031cb25
fix usage
marcocondrache Jan 19, 2026
3fc3867
windows impl
marcocondrache Jan 19, 2026
3fa15cb
undo paste
marcocondrache Jan 20, 2026
bd37103
we don't need a separate method
marcocondrache Jan 20, 2026
3aed9e1
remove helper
marcocondrache Jan 20, 2026
21ac945
copy during drag
marcocondrache Jan 20, 2026
d59baa9
we have to use TrashItem
marcocondrache Jan 20, 2026
980f7b2
return trashed entry
marcocondrache Jan 20, 2026
eb7b9d0
Merge branch 'main' into project-panel-undo-redo
marcocondrache Jan 22, 2026
c4a9f26
remove tests
marcocondrache Jan 22, 2026
4f13b14
Merge branch 'main' into project-panel-undo-redo
marcocondrache Jan 22, 2026
682e910
split delete_entry
marcocondrache Jan 22, 2026
0971f2d
Merge remote-tracking branch 'origin/main' into project-panel-undo-redo
marcocondrache Jan 26, 2026
668e120
tests
marcocondrache Jan 26, 2026
6915d44
WIP
marcocondrache Feb 6, 2026
347880a
WIP
marcocondrache Feb 10, 2026
ed6fec2
Merge branch 'main' into project-panel-undo-redo
marcocondrache Feb 10, 2026
0ffa878
WIP
marcocondrache Feb 10, 2026
7f8ae67
WIP
marcocondrache Feb 10, 2026
ab2997f
Merge branch 'main' into project-panel-undo-redo
marcocondrache Feb 16, 2026
1160a72
Merge branch 'main' into project-panel-undo-redo
marcocondrache Mar 2, 2026
64442f4
restore original proto
marcocondrache Mar 2, 2026
71b202c
remove some changes
marcocondrache Mar 3, 2026
13445da
Merge branch 'main' into project-panel-undo-redo
marcocondrache Mar 3, 2026
f36ea5f
restore even more
marcocondrache Mar 3, 2026
7c18484
keep only undo
marcocondrache Mar 3, 2026
b9a0378
revert even more unrelated stuff
marcocondrache Mar 3, 2026
bbbc731
add tests
marcocondrache Mar 3, 2026
02ab2f7
flatten
marcocondrache Mar 4, 2026
4ff094e
dont trash when reverting create
marcocondrache Mar 4, 2026
3e4ee7c
extract undo logic
marcocondrache Mar 5, 2026
a9f2464
simplify
marcocondrache Mar 5, 2026
4a31d70
revert
marcocondrache Mar 5, 2026
0ae235e
Merge branch 'main' into project-panel-undo-redo
marcocondrache Mar 5, 2026
ac3faf9
Merge branch 'main' into project-panel-undo-redo
marcocondrache Mar 12, 2026
227fa46
clippy
marcocondrache Mar 12, 2026
78f195f
Merge branch 'main' into project-panel-undo-redo
dinocosta Mar 17, 2026
06c0f55
refactor(project_panel): trash instead of delete on create operation
dinocosta Mar 17, 2026
8f24756
chore(project_panel): show error notification when undo fails
dinocosta Mar 17, 2026
78a5f09
refactor(project_panel): remove project entity in undo manager
dinocosta Mar 17, 2026
d52a3ff
refactor(project_panel): use vecdeque instead of circular_buffer
dinocosta Mar 17, 2026
bb46aff
refactor(project-panel): split `record` into `record` and `record_batch`
dinocosta Mar 17, 2026
56aa3bd
refactor(project_panel): revert batch operations sequentially in reverse
dinocosta Mar 17, 2026
cb9abf9
chore: fix clippy and typos
dinocosta Mar 18, 2026
7f65857
Add undo option in context-menu
marcocondrache Mar 18, 2026
1ac0094
feat(project_panel): add feature flag for undo/redo system
dinocosta Mar 18, 2026
f25394f
Merge branch 'main' into project-panel-undo-redo
marcocondrache Mar 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions assets/keymaps/default-linux.json
Original file line number Diff line number Diff line change
Expand Up @@ -890,6 +890,8 @@
"ctrl-alt-c": "project_panel::CopyPath",
"alt-shift-copy": "workspace::CopyRelativePath",
"alt-ctrl-shift-c": "workspace::CopyRelativePath",
"undo": "project_panel::Undo",
"ctrl-z": "project_panel::Undo",
"enter": "project_panel::Rename",
"f2": "project_panel::Rename",
"backspace": ["project_panel::Trash", { "skip_prompt": false }],
Expand Down
1 change: 1 addition & 0 deletions assets/keymaps/default-macos.json
Original file line number Diff line number Diff line change
Expand Up @@ -951,6 +951,7 @@
"cmd-v": "project_panel::Paste",
"cmd-alt-c": "workspace::CopyPath",
"alt-cmd-shift-c": "workspace::CopyRelativePath",
"cmd-z": "project_panel::Undo",
"enter": "project_panel::Rename",
"f2": "project_panel::Rename",
"backspace": ["project_panel::Trash", { "skip_prompt": false }],
Expand Down
1 change: 1 addition & 0 deletions assets/keymaps/default-windows.json
Original file line number Diff line number Diff line change
Expand Up @@ -887,6 +887,7 @@
"ctrl-v": "project_panel::Paste",
"shift-alt-c": "project_panel::CopyPath",
"ctrl-k ctrl-shift-c": "workspace::CopyRelativePath",
"ctrl-z": "project_panel::Undo",
"enter": "project_panel::Rename",
"f2": "project_panel::Rename",
"backspace": ["project_panel::Trash", { "skip_prompt": false }],
Expand Down
10 changes: 10 additions & 0 deletions crates/feature_flags/src/flags.rs
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,13 @@ impl FeatureFlag for StreamingEditFileToolFeatureFlag {
true
}
}

pub struct ProjectPanelUndoRedoFeatureFlag;

impl FeatureFlag for ProjectPanelUndoRedoFeatureFlag {
const NAME: &'static str = "project-panel-undo-redo";

fn enabled_for_staff() -> bool {
false
}
}
2 changes: 2 additions & 0 deletions crates/project_panel/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,15 @@ language.workspace = true
zed_actions.workspace = true
telemetry.workspace = true
notifications.workspace = true
feature_flags.workspace = true

[dev-dependencies]
client = { workspace = true, features = ["test-support"] }
criterion.workspace = true
editor = { workspace = true, features = ["test-support"] }
gpui = { workspace = true, features = ["test-support"] }
language = { workspace = true, features = ["test-support"] }
remote_connection = { workspace = true, features = ["test-support"] }
serde_json.workspace = true
tempfile.workspace = true
workspace = { workspace = true, features = ["test-support"] }
Loading
Loading