diff options
Diffstat (limited to 'pkg/gui')
56 files changed, 315 insertions, 324 deletions
diff --git a/pkg/gui/background.go b/pkg/gui/background.go index 342e3127e..db267c0dc 100644 --- a/pkg/gui/background.go +++ b/pkg/gui/background.go @@ -87,9 +87,10 @@ func (self *BackgroundRoutineMgr) goEvery(interval time.Duration, stop chan stru if self.pauseBackgroundRefreshes { continue } - self.gui.c.OnWorker(func(gocui.Task) { + self.gui.c.OnWorker(func(gocui.Task) error { _ = function() done <- struct{}{} + return nil }) // waiting so that we don't bunch up refreshes if the refresh takes longer than the interval <-done diff --git a/pkg/gui/context/menu_context.go b/pkg/gui/context/menu_context.go index 6d87d2bb7..e4c3d7280 100644 --- a/pkg/gui/context/menu_context.go +++ b/pkg/gui/context/menu_context.go @@ -1,6 +1,8 @@ package context import ( + "errors" + "github.com/jesseduffield/lazygit/pkg/gui/keybindings" "github.com/jesseduffield/lazygit/pkg/gui/style" "github.com/jesseduffield/lazygit/pkg/gui/types" @@ -148,7 +150,7 @@ func (self *MenuContext) GetKeybindings(opts types.KeybindingsOpts) []*types.Bin func (self *MenuContext) OnMenuPress(selectedItem *types.MenuItem) error { if selectedItem != nil && selectedItem.DisabledReason != nil { if selectedItem.DisabledReason.ShowErrorInPanel { - return self.c.ErrorMsg(selectedItem.DisabledReason.Text) + return errors.New(selectedItem.DisabledReason.Text) } self.c.ErrorToast(self.c.Tr.DisabledMenuItemPrefix + selectedItem.DisabledReason.Text) diff --git a/pkg/gui/controllers/basic_commits_controller.go b/pkg/gui/controllers/basic_commits_controller.go index caff67983..22e3da9d5 100644 --- a/pkg/gui/controllers/basic_commits_controller.go +++ b/pkg/gui/controllers/basic_commits_controller.go @@ -1,6 +1,7 @@ package controllers import ( + "errors" "fmt" "github.com/jesseduffield/lazygit/pkg/commands/git_commands" @@ -172,7 +173,7 @@ func (self *BasicCommitsController) copyCommitAttribute(commit *models.Commit) e func (self *BasicCommitsController) copyCommitHashToClipboard(commit *models.Commit) error { self.c.LogAction(self.c.Tr.Actions.CopyCommitHashToClipboard) if err := self.c.OS().CopyToClipboard(commit.Hash); err != nil { - return self.c.Error(err) + return err } self.c.Toast(fmt.Sprintf("'%s' %s", commit.Hash, self.c.Tr.CopiedToClipboard)) @@ -182,12 +183,12 @@ func (self *BasicCommitsController) copyCommitHashToClipboard(commit *models.Com func (self *BasicCommitsController) copyCommitURLToClipboard(commit *models.Commit) error { url, err := self.c.Helpers().Host.GetCommitURL(commit.Hash) if err != nil { - return self.c.Error(err) + return err } self.c.LogAction(self.c.Tr.Actions.CopyCommitURLToClipboard) if err := self.c.OS().CopyToClipboard(url); err != nil { - return self.c.Error(err) + return err } self.c.Toast(self.c.Tr.CommitURLCopiedToClipboard) @@ -197,12 +198,12 @@ func (self *BasicCommitsController) copyCommitURLToClipboard(commit *models.Comm func (self *BasicCommitsController) copyCommitDiffToClipboard(commit *models.Commit) error { diff, err := self.c.Git().Commit.GetCommitDiff(commit.Hash) if err != nil { - return self.c.Error(err) + return err } self.c.LogAction(self.c.Tr.Actions.CopyCommitDiffToClipboard) if err := self.c.OS().CopyToClipboard(diff); err != nil { - return self.c.Error(err) + return err } self.c.Toast(self.c.Tr.CommitDiffCopiedToClipboard) @@ -212,14 +213,14 @@ func (self *BasicCommitsController) copyCommitDiffToClipboard(commit *models.Com func (self *BasicCommitsController) copyAuthorToClipboard(commit *models.Commit) error { author, err := self.c.Git().Commit.GetCommitAuthor(commit.Hash) if err != nil { - return self.c.Error(err) + return err } formattedAuthor := fmt.Sprintf("%s <%s>", author.Name, author.Email) self.c.LogAction(self.c.Tr.Actions.CopyCommitAuthorToClipboard) if err := self.c.OS().CopyToClipboard(formattedAuthor); err != nil { - return self.c.Error(err) + return err } self.c.Toast(self.c.Tr.CommitAuthorCopiedToClipboard) @@ -229,12 +230,12 @@ func (self *BasicCommitsController) copyAuthorToClipboard(commit *models.Commit) func (self *BasicCommitsController) copyCommitMessageToClipboard(commit *models.Commit) error { message, err := self.c.Git().Commit.GetCommitMessage(commit.Hash) if err != nil { - return self.c.Error(err) + return err } self.c.LogAction(self.c.Tr.Actions.CopyCommitMessageToClipboard) if err := self.c.OS().CopyToClipboard(message); err != nil { - return self.c.Error(err) + return err } self.c.Toast(self.c.Tr.CommitMessageCopiedToClipboard) @@ -244,12 +245,12 @@ func (self *BasicCommitsController) copyCommitMessageToClipboard(commit *models. func (self *BasicCommitsController) copyCommitSubjectToClipboard(commit *models.Commit) error { message, err := self.c.Git().Commit.GetCommitSubject(commit.Hash) if err != nil { - return self.c.Error(err) + return err } self.c.LogAction(self.c.Tr.Actions.CopyCommitSubjectToClipboard) if err := self.c.OS().CopyToClipboard(message); err != nil { - return self.c.Error(err) + return err } self.c.Toast(self.c.Tr.CommitSubjectCopiedToClipboard) @@ -259,12 +260,12 @@ func (self *BasicCommitsController) copyCommitSubjectToClipboard(commit *models. func (self *BasicCommitsController) openInBrowser(commit *models.Commit) error { url, err := self.c.Helpers().Host.GetCommitURL(commit.Hash) if err != nil { - return self.c.Error(err) + return err } self.c.LogAction(self.c.Tr.Actions.OpenCommitInBrowser) if err := self.c.OS().OpenLink(url); err != nil { - return self.c.Error(err) + return err } return nil @@ -314,7 +315,7 @@ func (self *BasicCommitsController) handleOldCherryPickKey() error { "paste": keybindings.Label(self.c.UserConfig.Keybinding.Commits.PasteCommits), }) - return self.c.ErrorMsg(msg) + return errors.New(msg) } func (self *BasicCommitsController) openDiffTool(commit *models.Commit) error { diff --git a/pkg/gui/controllers/bisect_controller.go b/pkg/gui/controllers/bisect_controller.go index 89cc6241f..0db570107 100644 --- a/pkg/gui/controllers/bisect_controller.go +++ b/pkg/gui/controllers/bisect_controller.go @@ -96,7 +96,7 @@ func (self *BisectController) openMidBisectMenu(info *git_commands.BisectInfo, c OnPress: func() error { self.c.LogAction(self.c.Tr.Actions.BisectMark) if err := self.c.Git().Bisect.Mark(hashToMark, info.NewTerm()); err != nil { - return self.c.Error(err) + return err } return self.afterMark(selectCurrentAfter, waitToReselect) @@ -109,7 +109,7 @@ func (self *BisectController) openMidBisectMenu(info *git_commands.BisectInfo, c OnPress: func() error { self.c.LogAction(self.c.Tr.Actions.BisectMark) if err := self.c.Git().Bisect.Mark(hashToMark, info.OldTerm()); err != nil { - return self.c.Error(err) + return err } return self.afterMark(selectCurrentAfter, waitToReselect) @@ -122,7 +122,7 @@ func (self *BisectController) openMidBisectMenu(info *git_commands.BisectInfo, c OnPress: func() error { self.c.LogAction(self.c.Tr.Actions.BisectSkip) if err := self.c.Git().Bisect.Skip(hashToMark); err != nil { - return self.c.Error(err) + return err } return self.afterMark(selectCurrentAfter, waitToReselect) @@ -137,7 +137,7 @@ func (self *BisectController) openMidBisectMenu(info *git_commands.BisectInfo, c OnPress: func() error { self.c.LogAction(self.c.Tr.Actions.BisectSkip) if err := self.c.Git().Bisect.Skip(commit.Hash); err != nil { - return self.c.Error(err) + return err } return self.afterMark(selectCurrentAfter, waitToReselect) @@ -169,11 +169,11 @@ func (self *BisectController) openStartBisectMenu(info *git_commands.BisectInfo, OnPress: func() error { self.c.LogAction(self.c.Tr.Actions.StartBisect) if err := self.c.Git().Bisect.Start(); err != nil { - return self.c.Error(err) + return err } if err := self.c.Git().Bisect.Mark(commit.Hash, info.NewTerm()); err != nil { - return self.c.Error(err) + return err } return self.c.Helpers().Bisect.PostBisectCommandRefresh() @@ -186,11 +186,11 @@ func (self *BisectController) openStartBisectMenu(info *git_commands.BisectInfo, OnPress: func() error { self.c.LogAction(self.c.Tr.Actions.StartBisect) if err := self.c.Git().Bisect.Start(); err != nil { - return self.c.Error(err) + return err } if err := self.c.Git().Bisect.Mark(commit.Hash, info.OldTerm()); err != nil { - return self.c.Error(err) + return err } return self.c.Helpers().Bisect.PostBisectCommandRefresh() @@ -209,7 +209,7 @@ func (self *BisectController) openStartBisectMenu(info *git_commands.BisectInfo, HandleConfirm: func(newTerm string) error { self.c.LogAction(self.c.Tr.Actions.StartBisect) if err := self.c.Git().Bisect.StartWithTerms(oldTerm, newTerm); err != nil { - return self.c.Error(err) + return err } return self.c.Helpers().Bisect.PostBisectCommandRefresh() @@ -232,7 +232,7 @@ func (self *BisectController) showBisectCompleteMessage(candidateHashes []string formattedCommits, err := self.c.Git().Commit.GetCommitsOneline(candidateHashes) if err != nil { - return self.c.Error(err) + return err } return self.c.Confirm(types.ConfirmOpts{ @@ -241,7 +241,7 @@ func (self *BisectController) showBisectCompleteMessage(candidateHashes []string HandleConfirm: func() error { self.c.LogAction(self.c.Tr.Actions.ResetBisect) if err := self.c.Git().Bisect.Reset(); err != nil { - return self.c.Error(err) + return err } return self.c.Helpers().Bisect.PostBisectCommandRefresh() @@ -252,11 +252,11 @@ func (self *BisectController) showBisectCompleteMessage(candidateHashes []string func (self *BisectController) afterMark(selectCurrent bool, waitToReselect bool) error { done, candidateHashes, err := self.c.Git().Bisect.IsDone() if err != nil { - return self.c.Error(err) + return err } if err := self.afterBisectMarkRefresh(selectCurrent, waitToReselect); err != nil { - return self.c.Error(err) + return err } if done { @@ -267,16 +267,17 @@ func (self *BisectController) afterMark(selectCurrent bool, waitToReselect bool) } func (self *BisectController) afterBisectMarkRefresh(selectCurrent bool, waitToReselect bool) error { - selectFn := func() { + selectFn := func() error { if selectCurrent { self.selectCurrentBisectCommit() } + return nil } if waitToReselect { return self.c.Refresh(types.RefreshOptions{Mode: types.SYNC, Scope: []types.RefreshableView{}, Then: selectFn}) } else { - selectFn() + _ = selectFn() return self.c.Helpers().Bisect.PostBisectCommandRefresh() } diff --git a/pkg/gui/controllers/branches_controller.go b/pkg/gui/controllers/branches_controller.go index ff9473ab6..b08ddd0cd 100644 --- a/pkg/gui/controllers/branches_controller.go +++ b/pkg/gui/controllers/branches_controller.go @@ -209,7 +209,7 @@ func (self *BranchesController) viewUpstreamOptions(selectedBranch *models.Branc LabelColumns: []string{self.c.Tr.UnsetUpstream}, OnPress: func() error { if err := self.c.Git().Branch.UnsetUpstream(selectedBranch.Name); err != nil { - return self.c.Error(err) + return err } if err := self.c.Refresh(types.RefreshOptions{ Mode: types.SYNC, @@ -218,7 +218,7 @@ func (self *BranchesController) viewUpstreamOptions(selectedBranch *models.Branc types.COMMITS, }, }); err != nil { - return self.c.Error(err) + return err } return nil }, @@ -231,11 +231,11 @@ func (self *BranchesController) viewUpstreamOptions(selectedBranch *models.Branc return self.c.Helpers().Upstream.PromptForUpstreamWithoutInitialContent(selectedBranch, func(upstream string) error { upstreamRemote, upstreamBranch, err := self.c.Helpers().Upstream.ParseUpstream(upstream) if err != nil { - return self.c.Error(err) + return err } if err := self.c.Git().Branch.SetUpstream(upstreamRemote, upstreamBranch, selectedBranch.Name); err != nil { - return self.c.Error(err) + return err } if err := self.c.Refresh(types.RefreshOptions{ Mode: types.SYNC, @@ -244,7 +244,7 @@ func (self *BranchesController) viewUpstreamOptions(selectedBranch *models.Branc types.COMMITS, }, }); err != nil { - return self.c.Error(err) + return err } return nil }) @@ -279,7 +279,7 @@ func (self *BranchesController) viewUpstreamOptions(selectedBranch *models.Branc OnPress: func() error { err := self.c.Helpers().Refs.CreateGitResetMenu(upstream) if err != nil { - return self.c.Error(err) + return err } return nil }, @@ -292,7 +292,7 @@ func (self *BranchesController) viewUpstreamOptions(selectedBranch *models.Branc OpensMenu: true, OnPress: func() error { if err := self.c.Helpers().MergeAndRebase.RebaseOntoRef(selectedBranch.ShortUpstreamRefName()); err != nil { - return self.c.Error(err) + return err } return nil }, @@ -334,7 +334,7 @@ func (self *BranchesController) context() *context.BranchesContext { func (self *BranchesController) press(selectedBranch *models.Branch) error { if selectedBranch == self.c.Helpers().Refs.GetCheckedOutRef() { - return self.c.ErrorMsg(self.c.Tr.AlreadyCheckedOutBranch) + return errors.New(self.c.Tr.AlreadyCheckedOutBranch) } worktreeForRef, ok := self.worktreeForBranch(selectedBranch) @@ -378,7 +378,7 @@ func (self *BranchesController) promptToCheckoutWorktree(worktree *models.Worktr func (self *BranchesController) handleCreatePullRequest(selectedBranch *models.Branch) error { if !selectedBranch.IsTrackingRemote() { - return self.c.ErrorMsg(self.c.Tr.PullRequestNoUpstream) + return errors.New(self.c.Tr.PullRequestNoUpstream) } return self.createPullRequest(selectedBranch.UpstreamBranch, "") } @@ -395,16 +395,16 @@ func (self *BranchesController) copyPullRequestURL() error { branchExistsOnRemote := self.c.Git().Remote.CheckRemoteBranchExists(branch.Name) if !branchExistsOnRemote { - return self.c.Error(errors.New(self.c.Tr.NoBranchOnRemote)) + return errors.New(self.c.Tr.NoBranchOnRemote) } url, err := self.c.Helpers().Host.GetPullRequestURL(branch.Name, "") if err != nil { - return self.c.Error(err) + return err } self.c.LogAction(self.c.Tr.Actions.CopyPullRequestURL) if err := self.c.OS().CopyToClipboard(url); err != nil { - return self.c.Error(err) + return err } self.c.Toast(self.c.Tr.PullRequestURLCopiedToClipboard) @@ -423,7 +423,7 @@ func (self *BranchesController) forceCheckout() error { HandleConfirm: func() error { self.c.LogAction(self.c.Tr.Actions.ForceCheckoutBranch) if err := self.c.Git().Branch.Checkout(branch.Name, git_commands.CheckoutOptions{Force: true}); err != nil { - _ = self.c.Error(err) + return err } return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC}) }, @@ -463,7 +463,7 @@ func (self *BranchesController) createNewBranchWithName(newBranchName string) er } if err := self.c.Git().Branch.New(newBranchName, branch.FullRefName()); err != nil { - return self.c.Error(err) + return err } self.context().SetSelection(0) @@ -524,7 +524,7 @@ func (self *BranchesController) localDelete(branch *models.Branch) error { return self.forceDelete(branch) } if err != nil { - return self.c.Error(err) + return err } return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.BRANCHES}}) }) @@ -548,7 +548,7 @@ func (self *BranchesController) forceDelete(branch *models.Branch) error { Prompt: message, HandleConfirm: func() error { if err := self.c.Git().Branch.LocalDelete(branch.Name, true); err != nil { - return self.c.ErrorMsg(err.Error()) + return err } return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.BRANCHES}}) }, @@ -615,13 +615,13 @@ func (self *BranchesController) notRebasingOntoSelf(branch *models.Branch) *type func (self *BranchesController) fastForward(branch *models.Branch) error { if !branch.IsTrackingRemote() { - return self.c.ErrorMsg(self.c.Tr.FwdNoUpstream) + return errors.New(self.c.Tr.FwdNoUpstream) } if !branch.RemoteBranchStoredLocally() { - return self.c.ErrorMsg(self.c.Tr.FwdNoLocalUpstream) + return errors.New(self.c.Tr.FwdNoLocalUpstream) } if branch.HasCommitsToPush() { - return self.c.ErrorMsg(self.c.Tr.FwdCommitsToPush) + return errors.New(self.c.Tr.FwdCommitsToPush) } action := self.c.Tr.Actions.FastForwardBranch @@ -688,7 +688,7 @@ func (self *BranchesController) rename(branch *models.Branch) error { HandleConfirm: func(newBranchName string) error { self.c.LogAction(self.c.Tr.Actions.RenameBranch) if err := self.c.Git().Branch.Rename(branch.Name, helpers.SanitizedBranchName(newBranchName)); err != nil { - return self.c.Error(err) + return err } // need to find where the branch is now so that we can re-select it. That means we need to refetch the branches synchronously and then find our branch @@ -766,7 +766,7 @@ func (self *BranchesController) createPullRequestMenu(selectedBranch *models.Bra LabelColumns: fromToLabelColumns(checkedOutBranch.Name, selectedBranch.Name), OnPress: func() error { if !checkedOutBranch.IsTrackingRemote() || !selectedBranch.IsTrackingRemote() { - return self.c.ErrorMsg(self.c.Tr.PullRequestNoUpstream) + return errors.New(self.c.Tr.PullRequestNoUpstream) } return self.createPullRequest(checkedOutBranch.UpstreamBranch, selectedBranch.UpstreamBranch) }, @@ -783,13 +783,13 @@ func (self *BranchesController) createPullRequestMenu(selectedBranch *models.Bra func (self *BranchesController) createPullRequest(from string, to string) error { url, err := self.c.Helpers().Host.GetPullRequestURL(from, to) if err != nil { - return self.c.Error(err) + return err } self.c.LogAction(self.c.Tr.Actions.OpenPullRequest) if err := self.c.OS().OpenLink(url); err != nil { - return self.c.Error(err) + return err } return nil diff --git a/pkg/gui/controllers/commit_message_controller.go b/pkg/gui/controllers/commit_message_controller.go index 84e553d87..4012dc950 100644 --- a/pkg/gui/controllers/commit_message_controller.go +++ b/pkg/gui/controllers/commit_message_controller.go @@ -1,6 +1,8 @@ package controllers import ( + "errors" + "github.com/jesseduffield/lazygit/pkg/commands/git_commands" "github.com/jesseduffield/lazygit/pkg/gui/context" "github.com/jesseduffield/lazygit/pkg/gui/controllers/helpers" @@ -114,7 +116,7 @@ func (self *CommitMessageController) setCommitMessageAtIndex(index int) (bool, e if err == git_commands.ErrInvalidCommitIndex { return false, nil } - return false, self.c.ErrorMsg(self.c.Tr.CommitWithoutMessageErr) + return false, errors.New(self.c.Tr.CommitWithoutMessageErr) } if self.c.UserConfig.Git.Commit.AutoWrapCommitMessage { commitMessage = helpers.TryRemoveHardLineBreaks(commitMessage, self.c.UserConfig.Git.Commit.AutoWrapWidth) |