1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-04-27 12:32:37 +02:00

Use git lingo

This commit is contained in:
Jesse Duffield 2023-07-16 13:53:59 +10:00
parent c713d550c0
commit fe8adf9eb8
3 changed files with 47 additions and 37 deletions

View File

@ -7,6 +7,7 @@ import (
"log" "log"
"os" "os"
"github.com/jesseduffield/gocui"
"github.com/jesseduffield/lazygit/pkg/commands/models" "github.com/jesseduffield/lazygit/pkg/commands/models"
"github.com/jesseduffield/lazygit/pkg/gui/types" "github.com/jesseduffield/lazygit/pkg/gui/types"
) )
@ -62,11 +63,13 @@ func (self *WorktreeHelper) NewWorktree() error {
return self.c.Prompt(types.PromptOpts{ return self.c.Prompt(types.PromptOpts{
Title: self.c.Tr.NewWorktreePath, Title: self.c.Tr.NewWorktreePath,
HandleConfirm: func(committish string) error { HandleConfirm: func(committish string) error {
self.c.LogAction(self.c.Tr.Actions.CreateWorktree) 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 { if err := self.c.Git().Worktree.New(sanitizedBranchName(path), committish); err != nil {
return err return err
} }
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC}) return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
})
}, },
}) })
}, },

View File

@ -5,6 +5,7 @@ import (
"strings" "strings"
"text/tabwriter" "text/tabwriter"
"github.com/jesseduffield/gocui"
"github.com/jesseduffield/lazygit/pkg/commands/models" "github.com/jesseduffield/lazygit/pkg/commands/models"
"github.com/jesseduffield/lazygit/pkg/gui/context" "github.com/jesseduffield/lazygit/pkg/gui/context"
"github.com/jesseduffield/lazygit/pkg/gui/style" "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), Key: opts.GetKey(opts.Config.Universal.Remove),
Handler: self.checkSelected(self.delete), Handler: self.checkSelected(self.remove),
Description: self.c.Tr.DeleteWorktree, Description: self.c.Tr.RemoveWorktree,
}, },
{ {
Key: opts.GetKey(opts.Config.Universal.New), Key: opts.GetKey(opts.Config.Universal.New),
Handler: self.create, Handler: self.add,
Description: self.c.Tr.CreateWorktree, 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() 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() { if worktree.Main() {
return self.c.ErrorMsg(self.c.Tr.CantDeleteMainWorktree) 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.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 { func (self *WorktreesController) removeWithForce(worktree *models.Worktree, force bool) error {
title := self.c.Tr.DeleteWorktreeTitle title := self.c.Tr.RemoveWorktreeTitle
var templateStr string var templateStr string
if force { if force {
templateStr = self.c.Tr.ForceDeleteWorktreePrompt templateStr = self.c.Tr.ForceRemoveWorktreePrompt
} else { } else {
templateStr = self.c.Tr.DeleteWorktreePrompt templateStr = self.c.Tr.RemoveWorktreePrompt
} }
message := utils.ResolvePlaceholderString( message := utils.ResolvePlaceholderString(
templateStr, templateStr,
@ -122,15 +123,17 @@ func (self *WorktreesController) deleteWithForce(worktree *models.Worktree, forc
Title: title, Title: title,
Prompt: message, Prompt: message,
HandleConfirm: func() error { HandleConfirm: func() error {
self.c.LogAction(self.c.Tr.Actions.DeleteWorktree) 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 { if err := self.c.Git().Worktree.Delete(worktree.Path, force); err != nil {
errMessage := err.Error() errMessage := err.Error()
if !force { if !force {
return self.deleteWithForce(worktree, true) 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}})
})
}, },
}) })
} }

View File

@ -543,12 +543,14 @@ type TranslationSet struct {
ExitSearchMode string ExitSearchMode string
ExitTextFilterMode string ExitTextFilterMode string
EnterWorktree string EnterWorktree string
DeleteWorktree string RemoveWorktree string
DeleteWorktreeTitle string RemoveWorktreeTitle string
WorktreesTitle string WorktreesTitle string
WorktreeTitle string WorktreeTitle string
DeleteWorktreePrompt string RemoveWorktreePrompt string
ForceDeleteWorktreePrompt string ForceRemoveWorktreePrompt string
RemovingWorktree string
AddingWorktree string
CantDeleteCurrentWorktree string CantDeleteCurrentWorktree string
AlreadyInWorktree string AlreadyInWorktree string
CantDeleteMainWorktree string CantDeleteMainWorktree string
@ -691,8 +693,8 @@ type Actions struct {
ResetBisect string ResetBisect string
BisectSkip string BisectSkip string
BisectMark string BisectMark string
DeleteWorktree string RemoveWorktree string
CreateWorktree string AddWorktree string
} }
const englishIntroPopupMessage = ` const englishIntroPopupMessage = `
@ -1265,13 +1267,15 @@ func EnglishTranslationSet() TranslationSet {
WorktreesTitle: "Worktrees", WorktreesTitle: "Worktrees",
WorktreeTitle: "Worktree", WorktreeTitle: "Worktree",
EnterWorktree: "Enter worktree", EnterWorktree: "Enter worktree",
DeleteWorktree: "Delete worktree", RemoveWorktree: "Remove worktree",
DeleteWorktreeTitle: "Delete worktree", RemoveWorktreeTitle: "Remove worktree",
DeleteWorktreePrompt: "Are you sure you want to delete worktree '{{.worktreeName}}'?", RemoveWorktreePrompt: "Are you sure you want to remove worktree '{{.worktreeName}}'?",
ForceDeleteWorktreePrompt: "'{{.worktreeName}}' is not fully merged. Are you sure you want to delete it?", ForceRemoveWorktreePrompt: "'{{.worktreeName}}' is not fully merged. Are you sure you want to remove it?",
CantDeleteCurrentWorktree: "You cannot delete the current worktree!", RemovingWorktree: "Deleting worktree",
AddingWorktree: "Adding worktree",
CantDeleteCurrentWorktree: "You cannot remove the current worktree!",
AlreadyInWorktree: "You are already in the selected worktree", AlreadyInWorktree: "You are already in the selected worktree",
CantDeleteMainWorktree: "You cannot delete the main worktree!", CantDeleteMainWorktree: "You cannot remove the main worktree!",
NoWorktreesThisRepo: "No worktrees", NoWorktreesThisRepo: "No worktrees",
MissingWorktree: "(missing)", MissingWorktree: "(missing)",
MainWorktree: "(main)", MainWorktree: "(main)",
@ -1388,8 +1392,8 @@ func EnglishTranslationSet() TranslationSet {
ResetBisect: "Reset bisect", ResetBisect: "Reset bisect",
BisectSkip: "Bisect skip", BisectSkip: "Bisect skip",
BisectMark: "Bisect mark", BisectMark: "Bisect mark",
DeleteWorktree: "Delete worktree", RemoveWorktree: "Remove worktree",
CreateWorktree: "Create worktree", AddWorktree: "Add worktree",
}, },
Bisect: Bisect{ Bisect: Bisect{
Mark: "Mark current commit (%s) as %s", Mark: "Mark current commit (%s) as %s",