mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-05-11 12:25:47 +02:00
add confirmation before performing undo or redo action
This commit is contained in:
parent
12ecd665c8
commit
f113ff21bf
2 changed files with 48 additions and 17 deletions
|
@ -1,6 +1,8 @@
|
|||
package controllers
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/jesseduffield/lazygit/pkg/commands/types/enums"
|
||||
"github.com/jesseduffield/lazygit/pkg/gui/types"
|
||||
"github.com/jesseduffield/lazygit/pkg/utils"
|
||||
|
@ -83,17 +85,30 @@ func (self *UndoController) reflogUndo() error {
|
|||
|
||||
switch action.kind {
|
||||
case COMMIT, REBASE:
|
||||
self.c.LogAction(self.c.Tr.Actions.Undo)
|
||||
return true, self.hardResetWithAutoStash(action.from, hardResetOptions{
|
||||
EnvVars: undoEnvVars,
|
||||
WaitingStatus: undoingStatus,
|
||||
return true, self.c.Ask(types.AskOpts{
|
||||
Title: self.c.Tr.Actions.Undo,
|
||||
Prompt: fmt.Sprintf(self.c.Tr.HardResetAutostashPrompt, action.from),
|
||||
HandleConfirm: func() error {
|
||||
self.c.LogAction(self.c.Tr.Actions.Undo)
|
||||
return self.hardResetWithAutoStash(action.from, hardResetOptions{
|
||||
EnvVars: undoEnvVars,
|
||||
WaitingStatus: undoingStatus,
|
||||
})
|
||||
},
|
||||
})
|
||||
case CHECKOUT:
|
||||
self.c.LogAction(self.c.Tr.Actions.Undo)
|
||||
return true, self.helpers.Refs.CheckoutRef(action.from, types.CheckoutRefOptions{
|
||||
EnvVars: undoEnvVars,
|
||||
WaitingStatus: undoingStatus,
|
||||
return true, self.c.Ask(types.AskOpts{
|
||||
Title: self.c.Tr.Actions.Undo,
|
||||
Prompt: fmt.Sprintf(self.c.Tr.CheckoutPrompt, action.from),
|
||||
HandleConfirm: func() error {
|
||||
self.c.LogAction(self.c.Tr.Actions.Undo)
|
||||
return self.helpers.Refs.CheckoutRef(action.from, types.CheckoutRefOptions{
|
||||
EnvVars: undoEnvVars,
|
||||
WaitingStatus: undoingStatus,
|
||||
})
|
||||
},
|
||||
})
|
||||
|
||||
case CURRENT_REBASE:
|
||||
// do nothing
|
||||
}
|
||||
|
@ -121,16 +136,29 @@ func (self *UndoController) reflogRedo() error {
|
|||
|
||||
switch action.kind {
|
||||
case COMMIT, REBASE:
|
||||
self.c.LogAction(self.c.Tr.Actions.Redo)
|
||||
return true, self.hardResetWithAutoStash(action.to, hardResetOptions{
|
||||
EnvVars: redoEnvVars,
|
||||
WaitingStatus: redoingStatus,
|
||||
return true, self.c.Ask(types.AskOpts{
|
||||
Title: self.c.Tr.Actions.Redo,
|
||||
Prompt: fmt.Sprintf(self.c.Tr.HardResetAutostashPrompt, action.to),
|
||||
HandleConfirm: func() error {
|
||||
self.c.LogAction(self.c.Tr.Actions.Redo)
|
||||
return self.hardResetWithAutoStash(action.to, hardResetOptions{
|
||||
EnvVars: redoEnvVars,
|
||||
WaitingStatus: redoingStatus,
|
||||
})
|
||||
},
|
||||
})
|
||||
|
||||
case CHECKOUT:
|
||||
self.c.LogAction(self.c.Tr.Actions.Redo)
|
||||
return true, self.helpers.Refs.CheckoutRef(action.to, types.CheckoutRefOptions{
|
||||
EnvVars: redoEnvVars,
|
||||
WaitingStatus: redoingStatus,
|
||||
return true, self.c.Ask(types.AskOpts{
|
||||
Title: self.c.Tr.Actions.Redo,
|
||||
Prompt: fmt.Sprintf(self.c.Tr.CheckoutPrompt, action.to),
|
||||
HandleConfirm: func() error {
|
||||
self.c.LogAction(self.c.Tr.Actions.Redo)
|
||||
return self.helpers.Refs.CheckoutRef(action.to, types.CheckoutRefOptions{
|
||||
EnvVars: redoEnvVars,
|
||||
WaitingStatus: redoingStatus,
|
||||
})
|
||||
},
|
||||
})
|
||||
case CURRENT_REBASE:
|
||||
// do nothing
|
||||
|
|
|
@ -456,6 +456,8 @@ type TranslationSet struct {
|
|||
ConfirmRevertCommit string
|
||||
RewordInEditorTitle string
|
||||
RewordInEditorPrompt string
|
||||
CheckoutPrompt string
|
||||
HardResetAutostashPrompt string
|
||||
Actions Actions
|
||||
Bisect Bisect
|
||||
}
|
||||
|
@ -1031,7 +1033,8 @@ func EnglishTranslationSet() TranslationSet {
|
|||
ConfirmRevertCommit: "Are you sure you want to revert {{.selectedCommit}}?",
|
||||
RewordInEditorTitle: "Reword in editor",
|
||||
RewordInEditorPrompt: "Are you sure you want to reword this commit in your editor?",
|
||||
|
||||
HardResetAutostashPrompt: "Are you sure you want to hard reset to '%s'? An auto-stash will be performed if necessary.",
|
||||
CheckoutPrompt: "Are you sure you want to checkout '%s'?",
|
||||
Actions: Actions{
|
||||
// TODO: combine this with the original keybinding descriptions (those are all in lowercase atm)
|
||||
CheckoutCommit: "Checkout commit",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue