Fix save related tests, and refactor saves again

This commit is contained in:
Conrad Irwin 2023-09-20 20:13:52 -06:00
parent a59da3634b
commit 7a7ff4bb96
5 changed files with 156 additions and 163 deletions

View file

@ -2,7 +2,7 @@ use command_palette::CommandInterceptResult;
use editor::{SortLinesCaseInsensitive, SortLinesCaseSensitive};
use gpui::{impl_actions, Action, AppContext};
use serde_derive::Deserialize;
use workspace::{SaveBehavior, Workspace};
use workspace::{SaveIntent, Workspace};
use crate::{
motion::{EndOfDocument, Motion},
@ -50,112 +50,119 @@ pub fn command_interceptor(mut query: &str, _: &AppContext) -> Option<CommandInt
"w" | "wr" | "wri" | "writ" | "write" => (
"write",
workspace::Save {
save_behavior: Some(SaveBehavior::PromptOnConflict),
save_behavior: Some(SaveIntent::Save),
}
.boxed_clone(),
),
"w!" | "wr!" | "wri!" | "writ!" | "write!" => (
"write!",
workspace::Save {
save_behavior: Some(SaveBehavior::SilentlyOverwrite),
save_behavior: Some(SaveIntent::Overwrite),
}
.boxed_clone(),
),
"q" | "qu" | "qui" | "quit" => (
"quit",
workspace::CloseActiveItem {
save_behavior: Some(SaveBehavior::PromptOnWrite),
save_behavior: Some(SaveIntent::Close),
}
.boxed_clone(),
),
"q!" | "qu!" | "qui!" | "quit!" => (
"quit!",
workspace::CloseActiveItem {
save_behavior: Some(SaveBehavior::DontSave),
save_behavior: Some(SaveIntent::Skip),
}
.boxed_clone(),
),
"wq" => (
"wq",
workspace::CloseActiveItem {
save_behavior: Some(SaveBehavior::PromptOnConflict),
save_behavior: Some(SaveIntent::Save),
}
.boxed_clone(),
),
"wq!" => (
"wq!",
workspace::CloseActiveItem {
save_behavior: Some(SaveBehavior::SilentlyOverwrite),
save_behavior: Some(SaveIntent::Overwrite),
}
.boxed_clone(),
),
"x" | "xi" | "xit" | "exi" | "exit" => (
"exit",
workspace::CloseActiveItem {
save_behavior: Some(SaveBehavior::PromptOnConflict),
save_behavior: Some(SaveIntent::Save),
}
.boxed_clone(),
),
"x!" | "xi!" | "xit!" | "exi!" | "exit!" => (
"exit!",
workspace::CloseActiveItem {
save_behavior: Some(SaveBehavior::SilentlyOverwrite),
save_behavior: Some(SaveIntent::Overwrite),
}
.boxed_clone(),
),
"up" | "upd" | "upda" | "updat" | "update" => (
"update",
workspace::Save {
save_behavior: Some(SaveIntent::SaveAll),
}
.boxed_clone(),
),
"wa" | "wal" | "wall" => (
"wall",
workspace::SaveAll {
save_behavior: Some(SaveBehavior::PromptOnConflict),
save_behavior: Some(SaveIntent::SaveAll),
}
.boxed_clone(),
),
"wa!" | "wal!" | "wall!" => (
"wall!",
workspace::SaveAll {
save_behavior: Some(SaveBehavior::SilentlyOverwrite),
save_behavior: Some(SaveIntent::Overwrite),
}
.boxed_clone(),
),
"qa" | "qal" | "qall" | "quita" | "quital" | "quitall" => (
"quitall",
workspace::CloseAllItemsAndPanes {
save_behavior: Some(SaveBehavior::PromptOnWrite),
save_behavior: Some(SaveIntent::Close),
}
.boxed_clone(),
),
"qa!" | "qal!" | "qall!" | "quita!" | "quital!" | "quitall!" => (
"quitall!",
workspace::CloseAllItemsAndPanes {
save_behavior: Some(SaveBehavior::DontSave),
save_behavior: Some(SaveIntent::Skip),
}
.boxed_clone(),
),
"xa" | "xal" | "xall" => (
"xall",
workspace::CloseAllItemsAndPanes {
save_behavior: Some(SaveBehavior::PromptOnConflict),
save_behavior: Some(SaveIntent::SaveAll),
}
.boxed_clone(),
),
"xa!" | "xal!" | "xall!" => (
"xall!",
workspace::CloseAllItemsAndPanes {
save_behavior: Some(SaveBehavior::SilentlyOverwrite),
save_behavior: Some(SaveIntent::Overwrite),
}
.boxed_clone(),
),
"wqa" | "wqal" | "wqall" => (
"wqall",
workspace::CloseAllItemsAndPanes {
save_behavior: Some(SaveBehavior::PromptOnConflict),
save_behavior: Some(SaveIntent::SaveAll),
}
.boxed_clone(),
),
"wqa!" | "wqal!" | "wqall!" => (
"wqall!",
workspace::CloseAllItemsAndPanes {
save_behavior: Some(SaveBehavior::SilentlyOverwrite),
save_behavior: Some(SaveIntent::Overwrite),
}
.boxed_clone(),
),
@ -190,7 +197,7 @@ pub fn command_interceptor(mut query: &str, _: &AppContext) -> Option<CommandInt
"tabc" | "tabcl" | "tabclo" | "tabclos" | "tabclose" => (
"tabclose",
workspace::CloseActiveItem {
save_behavior: Some(SaveBehavior::PromptOnWrite),
save_behavior: Some(SaveIntent::Close),
}
.boxed_clone(),
),