summaryrefslogtreecommitdiffstats
path: root/pkg/gui/staging_panel.go
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2020-02-29 17:57:17 +1100
committerJesse Duffield <jessedduffield@gmail.com>2020-02-29 18:48:10 +1100
commit4c9b620bd0b24ce04b55e5b30f04dce8fa093be1 (patch)
tree6953f17428ee81b6f8cca0b4cfb224ecf8dcb2db /pkg/gui/staging_panel.go
parenta7508a5dfda7a06f5a9d08d4f9f3f957ac589f88 (diff)
better keybindings for staging by line
Diffstat (limited to 'pkg/gui/staging_panel.go')
-rw-r--r--pkg/gui/staging_panel.go27
1 files changed, 14 insertions, 13 deletions
diff --git a/pkg/gui/staging_panel.go b/pkg/gui/staging_panel.go
index 5fa7317de..3de1d9b32 100644
--- a/pkg/gui/staging_panel.go
+++ b/pkg/gui/staging_panel.go
@@ -99,26 +99,27 @@ func (gui *Gui) handleStagingEscape(g *gocui.Gui, v *gocui.View) error {
return gui.switchFocus(gui.g, nil, gui.getFilesView())
}
-func (gui *Gui) handleStageSelection(g *gocui.Gui, v *gocui.View) error {
- return gui.applySelectionWithPrompt(false)
-}
+func (gui *Gui) handleToggleStagedSelection(g *gocui.Gui, v *gocui.View) error {
+ state := gui.State.Panels.LineByLine
-func (gui *Gui) handleResetSelection(g *gocui.Gui, v *gocui.View) error {
- return gui.applySelectionWithPrompt(true)
+ return gui.applySelection(state.SecondaryFocused)
}
-func (gui *Gui) applySelectionWithPrompt(reverse bool) error {
+func (gui *Gui) handleResetSelection(g *gocui.Gui, v *gocui.View) error {
state := gui.State.Panels.LineByLine
- if !reverse && state.SecondaryFocused {
- return gui.createErrorPanel(gui.g, gui.Tr.SLocalize("CantStageStaged"))
- } else if reverse && !state.SecondaryFocused && !gui.Config.GetUserConfig().GetBool("gui.skipUnstageLineWarning") {
- return gui.createConfirmationPanel(gui.g, gui.getMainView(), false, "unstage lines", "Are you sure you want to unstage these lines? It is irreversible.\nTo disable this dialogue set the config key of 'gui.skipUnstageLineWarning' to true", func(*gocui.Gui, *gocui.View) error {
- return gui.applySelection(reverse)
- }, nil)
+ if state.SecondaryFocused {
+ // for backwards compatibility
+ return gui.applySelection(true)
}
- return gui.applySelection(reverse)
+ if gui.Config.GetUserConfig().GetBool("gui.skipUnstageLineWarning") {
+ return gui.createConfirmationPanel(gui.g, gui.getMainView(), false, "unstage lines", "Are you sure you want to delete the selected lines (git reset)? It is irreversible.\nTo disable this dialogue set the config key of 'gui.skipUnstageLineWarning' to true", func(*gocui.Gui, *gocui.View) error {
+ return gui.applySelection(true)
+ }, nil)
+ } else {
+ return gui.applySelection(true)
+ }
}
func (gui *Gui) applySelection(reverse bool) error {