use crate::config::ThemeConfig;
#[derive(Debug, Clone, PartialEq)]
pub enum LogAction {
ShowDetail,
CherryPick,
Revert,
Amend,
ResetSoft,
ResetMixed,
ResetHard,
CreateBranch,
CreateTag,
}
#[derive(Debug, Clone)]
#[allow(dead_code)]
pub enum Action {
ShowConfirm(Box<Action>, String),
ConfirmExecute,
ConfirmCancel,
StartInteractiveRebase(Vec<String>), RebaseCycleAction,
RebaseSetAction(crate::app::rebase::RebaseAction),
RebaseMoveUp,
RebaseMoveDown,
RebaseNext,
RebasePrev,
RebaseSaveAndRun,
RebaseCancel,
RebaseMarkDirty,
RebaseLoadTodo(Vec<String>),
RebaseSetBase(String),
RebaseToggleUseRoot,
LogToggleSelect,
SetRewordMessage(String),
SaveAndCloseReword(String),
SetRewordAuthorName(String),
SetRewordAuthorEmail(String),
FocusAndClearRewordAuthorName,
FocusAndClearRewordAuthorEmail,
FocusEditMessage,
FocusEditAuthorName,
FocusEditAuthorEmail,
FocusAndClearEditAuthorName,
FocusAndClearEditAuthorEmail,
SetEditMessage(String),
SaveAndCloseEdit(String),
SetEditAuthorName(String),
SetEditAuthorEmail(String),
RebaseAbortFromBuilder,
SetRewordFocus(crate::app::state::RewordField),
Quit, Tick, ToggleHelp,
LoadFullDiff,
ShowThemePicker,
HideThemePicker,
ThemePickerUp,
ThemePickerDown,
ApplyTheme(String),
SetAvailableThemes(Vec<String>),
ReloadTheme,
ReloadConfig,
FocusDiff,
FocusStatus,
ThemePreviewStart(Box<ThemeConfig>),
ThemePreviewApply(Box<ThemeConfig>),
ThemePreviewCancel,
ThemePreviewSet(usize, Box<ThemeConfig>),
SetStatus(String),
SetStatusLines(Vec<String>),
SetStatusEntries(Vec<crate::git::parsers::status::StatusEntry>),
SetStatusError(Option<String>),
SetErrorGuidance(Option<crate::app::error_guidance::ErrorGuidance>),
UpdateWorkflowContext,
StatusUp,
StatusDown,
StatusPageUp,
StatusPageDown,
StatusTop,
StatusBottom,
FocusNext,
FocusPrev,
SetLastRefreshed(Option<String>),
SetRefreshing(bool),
SetSelectedPath(String),
SetDiffText(String),
SetLastDiffPath(String),
SetLastDiffTruncated(bool),
SetLastDiffTotal(usize),
ToggleDiffMode,
SetLastDiffFetchedAt(Option<String>),
SetStatusSummary(crate::git::parsers::status::StatusSummary),
SetDiff(String),
SetDiffParsed(crate::git::DiffParseResult),
HelpUp,
HelpDown,
DetailScrollUp,
DetailScrollDown,
DetailScrollReset,
SetCurrentBranch(String),
ToggleFileSelect(String),
ClearFileSelects,
SetBranches(Vec<crate::app::state::BranchEntry>),
BranchUp,
BranchDown,
SetCommits(Vec<crate::app::state::CommitEntry>),
CommitUp,
CommitDown,
StartCommit,
StartAmend,
LoadLastCommitInfo,
SetLastCommitInfo(Option<crate::app::state::LastCommitInfo>),
SetAmendAuthorName(String),
SetAmendAuthorEmail(String),
SetAmendEditingField(Option<crate::app::state::AmendField>),
CancelCommit,
SetCommitInput(String),
CommitInputChar(char),
CommitInputBackspace,
SetFeedback(Option<String>),
SetStatusFilter(String),
SetFilterMode(bool),
SetFileScroll(String, (usize, usize)),
SetStashes(Vec<crate::app::state::StashEntry>),
StashUp,
StashDown,
SetDetailScrollX(usize),
ResetFileScroll(String),
SetBranchAheadBehind(String, i32, i32),
StartFilter,
CancelFilter,
FilterInputChar(char),
FilterInputBackspace,
DetailScrollLeft,
DetailScrollRight,
StartBranchCreate,
CancelBranchCreate,
BranchInputChar(char),
BranchInputBackspace,
BranchSubmit,
StartStashCreate,
CancelStashCreate,
StashInputChar(char),
StashInputBackspace,
StashSubmit,
DeleteStash(String),
ExecuteCustomCommand(String),
SetBranchSelected(usize),
SetHunks(Vec<(usize, usize)>),
HunkNext,
HunkPrev,
ToggleWordDiff,
ToggleLineSelectMode,
ToggleLineSelect(usize),
ClearLineSelects,
SetTags(Vec<crate::app::state::TagEntry>),
TagUp,
TagDown,
ToggleDelta,
SetHasDelta(bool),
IncreaseContext,
DecreaseContext,
ToggleWhitespace,
ToggleSideBySide,
ToggleTreeView,
SetReflog(Vec<crate::app::state::ReflogEntry>),
ReflogUp,
ReflogDown,
SetCommitDetail(Option<String>),
ToggleLogGraph,
SetLogGraphText(String),
SetFileHistoryPath(Option<String>),
SetRemotes(Vec<crate::app::state::RemoteEntry>),
RemoteUp,
RemoteDown,
ShowPalette,
HidePalette,
SetPaletteInput(String),
PaletteUp,
PaletteDown,
AddAsyncTask(crate::app::state::AsyncTask),
CompleteAsyncTask(u64),
FailAsyncTask(u64, String),
CleanupAsyncTasks,
CommitSubmit,
AmendCommit,
Push,
ForcePushAfterAmend,
CherryPickSelected,
RevertSelected,
RebaseContinue,
RebaseAbort,
RebaseSkip,
RebaseResolveConflicts,
RebaseAbortFromConflict,
ShowRebaseRecovery,
HideRebaseRecovery,
RebaseContinueInterrupted,
RebaseAbortInterrupted,
ShowRebaseTodo,
HideRebaseTodo,
RebaseTodoUp,
RebaseTodoDown,
SetRebaseTodo(Vec<String>),
SetRebaseTodoWithPath(Vec<String>, String),
SetRebaseTodoPath(String),
RebaseTodoToggleKind(usize, String),
RebaseTodoRewriteLine(usize, String),
StartRebaseTodoEdit(usize, String),
RebaseTodoEditBuffer(String),
SaveRebaseTodo,
OpenRebaseTodoInEditor,
ResetHard,
ResetMixed,
ResetSoft,
RequestResetHard,
RequestResetMixed,
RequestResetSoft,
CancelReset,
SetOpStatus(Option<String>),
AppendOpLog(String),
ToggleOpLog,
ShowOpLog,
ToggleMergeNotifier,
SetMergeBaseBranch(String),
SetMergeAhead(Option<i32>),
SetMergeInterval(u64),
MergeNotifierTick,
CheckMergeStatus,
AppendMergeLog(String),
ToggleMergeLog,
ListMergedBranches,
RequestPruneMergedBranches,
PruneMergedBranches,
ShowRemoteUrl(String),
SetRemoteSsh(String),
RequestRemotePrune(String),
RemotePrune(String),
ShowLogBrief,
ShowLogStats,
Pull,
PullRebase,
PullMerge,
FetchAllPrune,
SetPullTimeout(u64),
SetRebaseTimeout(u64),
ToggleFFOnly,
ToggleAutostash,
ToggleAutoFetch,
SetAutoFetchInterval(u64),
SetAutoFetchRemote(String),
CheckAutoFetch,
ShowPrHelper,
HidePrHelper,
PrHelperUp,
PrHelperDown,
OpenPrInBrowser(String),
CheckoutPr(String),
SetPrList(Vec<crate::app::state::PrItem>),
FilterConflictsOnly,
ClearConflictFilter,
ShowConflictsPopup,
HideConflictsPopup,
ConflictsPopupUp,
ConflictsPopupDown,
SelectConflict(String),
OpenConflictInEditor(String),
ShowConflictsGuided,
HideConflictsGuided,
ConflictsGuidedUp,
ConflictsGuidedDown,
OpenGuidedConflictInEditor,
OpenInEditor,
StageCurrentHunk,
UnstageCurrentHunk,
StageSelectedLines,
UnstageSelectedLines,
StatusNextConflict,
StatusPrevConflict,
TogglePushFFOnly,
ShowMergeBasePicker,
HideMergeBasePicker,
MergeBaseUp,
MergeBaseDown,
ApplyMergeBase(String),
SetMergeBaseCandidates(Vec<String>),
StageSelectedFile,
UnstageSelectedFile,
StageAllFiles,
UnstageAllFiles,
StatusNextStaged,
StatusPrevStaged,
RefreshBranches,
CheckoutBranch(String),
CheckoutRemoteBranch(String),
DeleteBranch(String),
MergeBranch(String),
RebaseBranch(String),
RefreshCommits,
ShowCommitDetail(String),
ShowLogActionMenu(String), HideLogActionMenu,
LogActionMenuUp,
LogActionMenuDown,
ExecuteLogAction(LogAction),
CherryPickCommit(String),
RevertCommit(String),
RefreshStatus,
RequestRefreshStatus,
RefreshStashes,
ApplyStash(String),
PopStash(String),
RefreshTags,
CheckoutTag(String),
DeleteTag(String),
RefreshReflog,
CheckoutReflog(String),
}