- Add `project_panel::undo::UndoManager` with a bounded operation stack to track and revert project panel operations - Support undoing file and directory creation, renaming, moving, pasting and drag-and-drop operations - Revert batch operations sequentially in reverse order to handle dependencies between them - Show an error notification when one or more undo operations fail - Add "Undo" entry to the project panel context menu, disabled when there is nothing to undo - Gate the feature behind the `project-panel-undo-redo` feature flag Ref: #5039 Release Notes: - N/A --------- Signed-off-by: Marco Mihai Condrache <52580954+marcocondrache@users.noreply.github.com> Co-authored-by: Cole Miller <cole@zed.dev> Co-authored-by: dino <dinojoaocosta@gmail.com>
75 lines
1.6 KiB
Rust
75 lines
1.6 KiB
Rust
use crate::FeatureFlag;
|
|
|
|
pub struct NotebookFeatureFlag;
|
|
|
|
impl FeatureFlag for NotebookFeatureFlag {
|
|
const NAME: &'static str = "notebooks";
|
|
}
|
|
|
|
pub struct PanicFeatureFlag;
|
|
|
|
impl FeatureFlag for PanicFeatureFlag {
|
|
const NAME: &'static str = "panic";
|
|
}
|
|
|
|
pub struct AgentV2FeatureFlag;
|
|
|
|
impl FeatureFlag for AgentV2FeatureFlag {
|
|
const NAME: &'static str = "agent-v2";
|
|
|
|
fn enabled_for_staff() -> bool {
|
|
true
|
|
}
|
|
}
|
|
|
|
/// A feature flag for granting access to beta ACP features.
|
|
///
|
|
/// We reuse this feature flag for new betas, so don't delete it if it is not currently in use.
|
|
pub struct AcpBetaFeatureFlag;
|
|
|
|
impl FeatureFlag for AcpBetaFeatureFlag {
|
|
const NAME: &'static str = "acp-beta";
|
|
}
|
|
|
|
pub struct AgentSharingFeatureFlag;
|
|
|
|
impl FeatureFlag for AgentSharingFeatureFlag {
|
|
const NAME: &'static str = "agent-sharing";
|
|
}
|
|
|
|
pub struct DiffReviewFeatureFlag;
|
|
|
|
impl FeatureFlag for DiffReviewFeatureFlag {
|
|
const NAME: &'static str = "diff-review";
|
|
|
|
fn enabled_for_staff() -> bool {
|
|
false
|
|
}
|
|
}
|
|
|
|
pub struct GitGraphFeatureFlag;
|
|
|
|
impl FeatureFlag for GitGraphFeatureFlag {
|
|
const NAME: &'static str = "git-graph";
|
|
}
|
|
|
|
pub struct StreamingEditFileToolFeatureFlag;
|
|
|
|
impl FeatureFlag for StreamingEditFileToolFeatureFlag {
|
|
const NAME: &'static str = "streaming-edit-file-tool";
|
|
|
|
fn enabled_for_staff() -> bool {
|
|
true
|
|
}
|
|
}
|
|
|
|
pub struct ProjectPanelUndoRedoFeatureFlag;
|
|
|
|
impl FeatureFlag for ProjectPanelUndoRedoFeatureFlag {
|
|
const NAME: &'static str = "project-panel-undo-redo";
|
|
|
|
fn enabled_for_staff() -> bool {
|
|
false
|
|
}
|
|
}
|