summaryrefslogtreecommitdiffstats
path: root/pkg/gui
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2023-07-16 13:53:59 +1000
committerJesse Duffield <jessedduffield@gmail.com>2023-07-30 18:35:22 +1000
commitfe8adf9eb863a226de9d514216a261f988122cc5 (patch)
treeafb3002d190dd9ed86c2ff83f3cc9ba80733e360 /pkg/gui
parentc713d550c0a215408969838009865b6b906c7576 (diff)
Use git lingo
Diffstat (limited to 'pkg/gui')
-rw-r--r--pkg/gui/controllers/helpers/worktree_helper.go13
-rw-r--r--pkg/gui/controllers/worktrees_controller.go39
2 files changed, 29 insertions, 23 deletions
diff --git a/pkg/gui/controllers/helpers/worktree_helper.go b/pkg/gui/controllers/helpers/worktree_helper.go
index bdaf7d2f9..a05d469ce 100644
--- a/pkg/gui/controllers/helpers/worktree_helper.go
+++ b/pkg/gui/controllers/helpers/worktree_helper.go
@@ -7,6 +7,7 @@ import (
"log"
"os"
+ "github.com/jesseduffield/gocui"
"github.com/jesseduffield/lazygit/pkg/commands/models"
"github.com/jesseduffield/lazygit/pkg/gui/types"
)
@@ -62,11 +63,13 @@ func (self *WorktreeHelper) NewWorktree() error {
return self.c.Prompt(types.PromptOpts{
Title: self.c.Tr.NewWorktreePath,
HandleConfirm: func(committish string) error {
- self.c.LogAction(self.c.Tr.Actions.CreateWorktree)
- if err := self.c.Git().Worktree.New(sanitizedBranchName(path), committish); err != nil {
- return err
- }
- return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
+ return self.c.WithWaitingStatus(self.c.Tr.AddingWorktree, func(gocui.Task) error {
+ self.c.LogAction(self.c.Tr.Actions.AddWorktree)
+ if err := self.c.Git().Worktree.New(sanitizedBranchName(path), committish); err != nil {
+ return err
+ }
+ return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
+ })
},
})
},
diff --git a/pkg/gui/controllers/worktrees_controller.go b/pkg/gui/controllers/worktrees_controller.go
index 0c515b564..c8b23f906 100644
--- a/pkg/gui/controllers/worktrees_controller.go
+++ b/pkg/gui/controllers/worktrees_controller.go
@@ -5,6 +5,7 @@ import (
"strings"
"text/tabwriter"
+ "github.com/jesseduffield/gocui"
"github.com/jesseduffield/lazygit/pkg/commands/models"
"github.com/jesseduffield/lazygit/pkg/gui/context"
"github.com/jesseduffield/lazygit/pkg/gui/style"
@@ -37,12 +38,12 @@ func (self *WorktreesController) GetKeybindings(opts types.KeybindingsOpts) []*t
},
{
Key: opts.GetKey(opts.Config.Universal.Remove),
- Handler: self.checkSelected(self.delete),
- Description: self.c.Tr.DeleteWorktree,
+ Handler: self.checkSelected(self.remove),
+ Description: self.c.Tr.RemoveWorktree,
},
{
Key: opts.GetKey(opts.Config.Universal.New),
- Handler: self.create,
+ Handler: self.add,
Description: self.c.Tr.CreateWorktree,
},
}
@@ -87,11 +88,11 @@ func (self *WorktreesController) GetOnRenderToMain() func() error {
}
}
-func (self *WorktreesController) create() error {
+func (self *WorktreesController) add() error {
return self.c.Helpers().Worktree.NewWorktree()
}
-func (self *WorktreesController) delete(worktree *models.Worktree) error {
+func (self *WorktreesController) remove(worktree *models.Worktree) error {
if worktree.Main() {
return self.c.ErrorMsg(self.c.Tr.CantDeleteMainWorktree)
}
@@ -100,16 +101,16 @@ func (self *WorktreesController) delete(worktree *models.Worktree) error {
return self.c.ErrorMsg(self.c.Tr.CantDeleteCurrentWorktree)
}
- return self.deleteWithForce(worktree, false)
+ return self.removeWithForce(worktree, false)
}
-func (self *WorktreesController) deleteWithForce(worktree *models.Worktree, force bool) error {
- title := self.c.Tr.DeleteWorktreeTitle
+func (self *WorktreesController) removeWithForce(worktree *models.Worktree, force bool) error {
+ title := self.c.Tr.RemoveWorktreeTitle
var templateStr string
if force {
- templateStr = self.c.Tr.ForceDeleteWorktreePrompt
+ templateStr = self.c.Tr.ForceRemoveWorktreePrompt
} else {
- templateStr = self.c.Tr.DeleteWorktreePrompt
+ templateStr = self.c.Tr.RemoveWorktreePrompt
}
message := utils.ResolvePlaceholderString(
templateStr,
@@ -122,15 +123,17 @@ func (self *WorktreesController) deleteWithForce(worktree *models.Worktree, forc
Title: title,
Prompt: message,
HandleConfirm: func() error {
- self.c.LogAction(self.c.Tr.Actions.DeleteWorktree)
- if err := self.c.Git().Worktree.Delete(worktree.Path, force); err != nil {
- errMessage := err.Error()
- if !force {
- return self.deleteWithForce(worktree, true)
+ return self.c.WithWaitingStatus(self.c.Tr.RemovingWorktree, func(gocui.Task) error {
+ self.c.LogAction(self.c.Tr.RemovingWorktree)
+ if err := self.c.Git().Worktree.Delete(worktree.Path, force); err != nil {
+ errMessage := err.Error()
+ if !force {
+ return self.removeWithForce(worktree, true)
+ }
+ return self.c.ErrorMsg(errMessage)
}
- return self.c.ErrorMsg(errMessage)
- }
- return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.WORKTREES}})
+ return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.WORKTREES}})
+ })
},
})
}