summaryrefslogtreecommitdiffstats
path: root/pkg/gui/controllers/files_controller.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/gui/controllers/files_controller.go')
-rw-r--r--pkg/gui/controllers/files_controller.go63
1 files changed, 32 insertions, 31 deletions
diff --git a/pkg/gui/controllers/files_controller.go b/pkg/gui/controllers/files_controller.go
index 25d41cd6f..b71991fc2 100644
--- a/pkg/gui/controllers/files_controller.go
+++ b/pkg/gui/controllers/files_controller.go
@@ -1,6 +1,7 @@
package controllers
import (
+ "errors"
"strings"
"github.com/jesseduffield/gocui"
@@ -388,7 +389,7 @@ func (self *FilesController) pressWithLock(selectedNodes []*filetree.FileNode) e
// if any files within have inline merge conflicts we can't stage or unstage,
// or it'll end up with those >>>>>> lines actually staged
if node.GetHasInlineMergeConflicts() {
- return self.c.ErrorMsg(self.c.Tr.ErrStageDirWithInlineMergeConflicts)
+ return errors.New(self.c.Tr.ErrStageDirWithInlineMergeConflicts)
}
}
@@ -410,7 +411,7 @@ func (self *FilesController) pressWithLock(selectedNodes []*filetree.FileNode) e
}
if err := self.c.Git().WorkingTree.StageFiles(toPaths(selectedNodes)); err != nil {
- return self.c.Error(err)
+ return err
}
} else {
self.c.LogAction(self.c.Tr.Actions.UnstageFile)
@@ -428,13 +429,13 @@ func (self *FilesController) pressWithLock(selectedNodes []*filetree.FileNode) e
if len(untrackedNodes) > 0 {
if err := self.c.Git().WorkingTree.UnstageUntrackedFiles(toPaths(untrackedNodes)); err != nil {
- return self.c.Error(err)
+ return err
}
}
if len(trackedNodes) > 0 {
if err := self.c.Git().WorkingTree.UnstageTrackedFiles(toPaths(trackedNodes)); err != nil {
- return self.c.Error(err)
+ return err
}
}
}
@@ -496,7 +497,7 @@ func (self *FilesController) EnterFile(opts types.OnFocusOpts) error {
return self.switchToMerge()
}
if file.HasMergeConflicts {
- return self.c.ErrorMsg(self.c.Tr.FileStagingRequirements)
+ return errors.New(self.c.Tr.FileStagingRequirements)
}
return self.c.PushContext(self.c.Contexts().Staging, opts)
@@ -523,7 +524,7 @@ func (self *FilesController) toggleStagedAllWithLock() error {
// if any files within have inline merge conflicts we can't stage or unstage,
// or it'll end up with those >>>>>> lines actually staged
if root.GetHasInlineMergeConflicts() {
- return self.c.ErrorMsg(self.c.Tr.ErrStageDirWithInlineMergeConflicts)
+ return errors.New(self.c.Tr.ErrStageDirWithInlineMergeConflicts)
}
if root.GetHasUnstagedChanges() {
@@ -534,7 +535,7 @@ func (self *FilesController) toggleStagedAllWithLock() error {
}
if err := self.c.Git().WorkingTree.StageAll(); err != nil {
- return self.c.Error(err)
+ return err
}
} else {
self.c.LogAction(self.c.Tr.Actions.UnstageAllFiles)
@@ -544,7 +545,7 @@ func (self *FilesController) toggleStagedAllWithLock() error {
}
if err := self.c.Git().WorkingTree.UnstageAll(); err != nil {
- return self.c.Error(err)
+ return err
}
}
@@ -606,14 +607,14 @@ func (self *FilesController) ignoreOrExcludeFile(node *filetree.FileNode, trText
func (self *FilesController) ignore(node *filetree.FileNode) error {
if node.GetPath() == ".gitignore" {
- return self.c.ErrorMsg(self.c.Tr.Actions.IgnoreFileErr)
+ return errors.New(self.c.Tr.Actions.IgnoreFileErr)
}
return self.ignoreOrExcludeFile(node, self.c.Tr.IgnoreTracked, self.c.Tr.IgnoreTrackedPrompt, self.c.Tr.Actions.IgnoreExcludeFile, self.c.Git().WorkingTree.Ignore)
}
func (self *FilesController) exclude(node *filetree.FileNode) error {
if node.GetPath() == ".gitignore" {
- return self.c.ErrorMsg(self.c.Tr.Actions.ExcludeGitIgnoreErr)
+ return errors.New(self.c.Tr.Actions.ExcludeGitIgnoreErr)
}
return self.ignoreOrExcludeFile(node, self.c.Tr.ExcludeTracked, self.c.Tr.ExcludeTrackedPrompt, self.c.Tr.Actions.ExcludeFile, self.c.Git().WorkingTree.Exclude)
@@ -627,7 +628,7 @@ func (self *FilesController) ignoreOrExcludeMenu(node *filetree.FileNode) error
LabelColumns: []string{self.c.Tr.IgnoreFile},
OnPress: func() error {
if err := self.ignore(node); err != nil {
- return self.c.Error(err)
+ return err
}
return nil
},
@@ -637,7 +638,7 @@ func (self *FilesController) ignoreOrExcludeMenu(node *filetree.FileNode) error
LabelColumns: []string{self.c.Tr.ExcludeFile},
OnPress: func() error {
if err := self.exclude(node); err != nil {
- return self.c.Error(err)
+ return err
}
return nil
},
@@ -658,7 +659,7 @@ func (self *FilesController) handleAmendCommitPress() error {
HandleConfirm: func() error {
return self.c.Helpers().WorkingTree.WithEnsureCommitableFiles(func() error {
if len(self.c.Model().Commits) == 0 {
- return self.c.ErrorMsg(self.c.Tr.NoCommitToAmend)
+ return errors.New(self.c.Tr.NoCommitToAmend)
}
return self.c.Helpers().AmendHelper.AmendHead()
@@ -765,7 +766,7 @@ func (self *FilesController) createStashMenu() error {
Label: self.c.Tr.StashAllChanges,
OnPress: func() error {
if !self.c.Helpers().WorkingTree.IsWorkingTreeDirty() {
- return self.c.ErrorMsg(self.c.Tr.NoFilesToStash)
+ return errors.New(self.c.Tr.NoFilesToStash)
}
return self.handleStashSave(self.c.Git().Stash.Push, self.c.Tr.Actions.StashAllChanges)
},
@@ -775,7 +776,7 @@ func (self *FilesController) createStashMenu() error {
Label: self.c.Tr.StashAllChangesKeepIndex,
OnPress: func() error {
if !self.c.Helpers().WorkingTree.IsWorkingTreeDirty() {
- return self.c.ErrorMsg(self.c.Tr.NoFilesToStash)
+ return errors.New(self.c.Tr.NoFilesToStash)
}
// if there are no staged files it behaves the same as Stash.Save
return self.handleStashSave(self.c.Git().Stash.StashAndKeepIndex, self.c.Tr.Actions.StashAllChangesKeepIndex)
@@ -794,7 +795,7 @@ func (self *FilesController) createStashMenu() error {
OnPress: func() error {
// there must be something in staging otherwise the current implementation mucks the stash up
if !self.c.Helpers().WorkingTree.AnyStagedFiles() {
- return self.c.ErrorMsg(self.c.Tr.NoTrackedStagedFilesStash)
+ return errors.New(self.c.Tr.NoTrackedStagedFilesStash)
}
return self.handleStashSave(self.c.Git().Stash.SaveStagedChanges, self.c.Tr.Actions.StashStagedChanges)
},
@@ -804,7 +805,7 @@ func (self *FilesController) createStashMenu() error {
Label: self.c.Tr.StashUnstagedChanges,
OnPress: func() error {
if !self.c.Helpers().WorkingTree.IsWorkingTreeDirty() {
- return self.c.ErrorMsg(self.c.Tr.NoFilesToStash)
+ return errors.New(self.c.Tr.NoFilesToStash)
}
if self.c.Helpers().WorkingTree.AnyStagedFiles() {
return self.handleStashSave(self.c.Git().Stash.StashUnstagedChanges, self.c.Tr.Actions.StashUnstagedChanges)
@@ -825,7 +826,7 @@ func (self *FilesController) openCopyMenu() error {
Label: self.c.Tr.CopyFileName,
OnPress: func() error {
if err := self.c.OS().CopyToClipboard(node.Name()); err != nil {
- return self.c.Error(err)
+ return err
}
self.c.Toast(self.c.Tr.FileNameCopiedToast)
return nil
@@ -837,7 +838,7 @@ func (self *FilesController) openCopyMenu() error {
Label: self.c.Tr.CopyFilePath,
OnPress: func() error {
if err := self.c.OS().CopyToClipboard(node.Path); err != nil {
- return self.c.Error(err)
+ return err
}
self.c.Toast(self.c.Tr.FilePathCopiedToast)
return nil
@@ -853,10 +854,10 @@ func (self *FilesController) openCopyMenu() error {
hasStaged := self.hasPathStagedChanges(node)
diff, err := self.c.Git().Diff.GetPathDiff(path, hasStaged)
if err != nil {
- return self.c.Error(err)
+ return err
}
if err := self.c.OS().CopyToClipboard(diff); err != nil {
- return self.c.Error(err)
+ return err
}
self.c.Toast(self.c.Tr.FileDiffCopiedToast)
return nil
@@ -878,10 +879,10 @@ func (self *FilesController) openCopyMenu() error {
hasStaged := self.c.Helpers().WorkingTree.AnyStagedFiles()
diff, err := self.c.Git().Diff.GetAllDiff(hasStaged)
if err != nil {
- return self.c.Error(err)
+ return err
}
if err := self.c.OS().CopyToClipboard(diff); err != nil {
- return self.c.Error(err)
+ return err
}
self.c.Toast(self.c.Tr.AllFilesDiffCopiedToast)
return nil
@@ -957,7 +958,7 @@ func (self *FilesController) handleStashSave(stashFunc func(message string) erro
self.c.LogAction(action)
if err := stashFunc(stashComment); err != nil {
- return self.c.Error(err)
+ return err
}
return self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.STASH, types.FILES}})
},
@@ -975,7 +976,7 @@ func (self *FilesController) onClickSecondary(opts gocui.ViewMouseBindingOpts) e
func (self *FilesController) fetch() error {
return self.c.WithWaitingStatus(self.c.Tr.FetchingStatus, func(task gocui.Task) error {
if err := self.fetchAux(task); err != nil {
- _ = self.c.Error(err)
+ return err
}
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
})
@@ -986,7 +987,7 @@ func (self *FilesController) fetchAux(task gocui.Task) (err error) {
err = self.c.Git().Sync.Fetch(task)
if err != nil && strings.Contains(err.Error(), "exit status 128") {
- _ = self.c.ErrorMsg(self.c.Tr.PassUnameWrong)
+ return errors.New(self.c.Tr.PassUnameWrong)
}
_ = self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.BRANCHES, types.COMMITS, types.REMOTES, types.TAGS}, Mode: types.ASYNC})
@@ -1073,7 +1074,7 @@ func (self *FilesController) remove(selectedNodes []*filetree.FileNode) error {
for _, node := range selectedNodes {
if err := self.c.Git().WorkingTree.DiscardAllDirChanges(node); err != nil {
- return self.c.Error(err)
+ return err
}
}
@@ -1101,7 +1102,7 @@ func (self *FilesController) remove(selectedNodes []*filetree.FileNode) error {
for _, node := range selectedNodes {
if err := self.c.Git().WorkingTree.DiscardUnstagedDirChanges(node); err != nil {
- return self.c.Error(err)
+ return err
}
}
@@ -1127,15 +1128,15 @@ func (self *FilesController) ResetSubmodule(submodule *models.SubmoduleConfig) e
file := self.c.Helpers().WorkingTree.FileForSubmodule(submodule)
if file != nil {
if err := self.c.Git().WorkingTree.UnStageFile(file.Names(), file.Tracked); err != nil {
- return self.c.Error(err)
+ return err
}
}
if err := self.c.Git().Submodule.Stash(submodule); err != nil {
- return self.c.Error(err)
+ return err
}
if err := self.c.Git().Submodule.Reset(submodule); err != nil {
- return self.c.Error(err)
+ return err
}
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.FILES, types.SUBMODULES}})