diff options
author | Stefan Haller <stefan@haller-berlin.de> | 2024-04-18 10:14:51 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-18 10:14:51 +0200 |
commit | 34f8f7293c5c901461a26f09839ebe5f0dd79869 (patch) | |
tree | 4b65b46c7d1e32f1d8e90b528545b081b0fd8822 /pkg/gui/controllers/basic_commits_controller.go | |
parent | 145795c0b07da129599506ac8827a16314456ac4 (diff) | |
parent | caad55350252793b53aaf699062644a2cddc6a08 (diff) |
Simplify error handling (#3502)
- **PR Description**
Simplify and canonicalize error handling across the code base.
Previously it was important to make sure that errors don't bubble up
into gocui, because it would panic there; so we had to show errors in
error panels in the right places (in controller code, usually). This is
error-prone because it's easy to forget (see #3490 for an example);
also, it's not always obvious where in the call chain the error panel
needs to be shown. Most of the time it's in controller code, but we had
plenty of calls to `Error()` in helpers, and I remember that I found
this very confusing when I was new to the code base.
Change this so that you can simply return errors everywhere. The
functions to show an error message manually have been removed for
clarity.
I tried to structure the commits so that you can review them one by one.
Closes #3491.
Diffstat (limited to 'pkg/gui/controllers/basic_commits_controller.go')
-rw-r--r-- | pkg/gui/controllers/basic_commits_controller.go | 29 |
1 files changed, 15 insertions, 14 deletions
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 { |