From f863684d6d3a6c73445342faf0ab11c69c0a39db Mon Sep 17 00:00:00 2001 From: Jesse Duffield Date: Fri, 2 Apr 2021 19:20:40 +1100 Subject: [PATCH] get rid of these positively ghastly method signatures --- pkg/gui/branches_panel.go | 25 ++- pkg/gui/commit_files_panel.go | 13 +- pkg/gui/commit_message_panel.go | 9 +- pkg/gui/commits_panel.go | 43 +++-- pkg/gui/confirmation_panel.go | 6 + pkg/gui/credentials_panel.go | 9 +- pkg/gui/custom_commands.go | 2 +- pkg/gui/diffing.go | 4 +- pkg/gui/files_panel.go | 38 ++-- pkg/gui/filtering_menu_panel.go | 6 +- pkg/gui/git_flow.go | 3 +- pkg/gui/global_handlers.go | 49 ++--- pkg/gui/keybindings.go | 220 +++++++++++------------ pkg/gui/line_by_line_panel.go | 32 +++- pkg/gui/list_context.go | 23 ++- pkg/gui/menu_panel.go | 4 +- pkg/gui/options_menu_panel.go | 13 +- pkg/gui/patch_options_panel.go | 3 +- pkg/gui/quitting.go | 4 +- pkg/gui/reflog_panel.go | 5 +- pkg/gui/remote_branches_panel.go | 13 +- pkg/gui/remotes_panel.go | 9 +- pkg/gui/searching.go | 14 +- pkg/gui/side_window.go | 6 +- pkg/gui/staging_panel.go | 5 +- pkg/gui/stash_panel.go | 7 +- pkg/gui/status_panel.go | 10 +- pkg/gui/sub_commits_panel.go | 3 +- pkg/gui/submodules_panel.go | 19 +- pkg/gui/tags_panel.go | 11 +- pkg/gui/undoing.go | 5 +- pkg/gui/view_helpers.go | 38 ++-- pkg/gui/workspace_reset_options_panel.go | 3 +- 33 files changed, 351 insertions(+), 303 deletions(-) diff --git a/pkg/gui/branches_panel.go b/pkg/gui/branches_panel.go index e94ed7700..27c2d693c 100644 --- a/pkg/gui/branches_panel.go +++ b/pkg/gui/branches_panel.go @@ -4,7 +4,6 @@ import ( "fmt" "strings" - "github.com/jesseduffield/gocui" "github.com/jesseduffield/lazygit/pkg/commands" "github.com/jesseduffield/lazygit/pkg/commands/models" "github.com/jesseduffield/lazygit/pkg/gui/presentation" @@ -79,7 +78,7 @@ func (gui *Gui) refreshBranches() { // specific functions -func (gui *Gui) handleBranchPress(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleBranchPress() error { if gui.State.Panels.Branches.SelectedLineIdx == -1 { return nil } @@ -90,7 +89,7 @@ func (gui *Gui) handleBranchPress(g *gocui.Gui, v *gocui.View) error { return gui.handleCheckoutRef(branch.Name, handleCheckoutRefOptions{}) } -func (gui *Gui) handleCreatePullRequestPress(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCreatePullRequestPress() error { pullRequest := commands.NewPullRequest(gui.GitCommand) branch := gui.getSelectedBranch() @@ -101,7 +100,7 @@ func (gui *Gui) handleCreatePullRequestPress(g *gocui.Gui, v *gocui.View) error return nil } -func (gui *Gui) handleCopyPullRequestURLPress(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCopyPullRequestURLPress() error { pullRequest := commands.NewPullRequest(gui.GitCommand) branch := gui.getSelectedBranch() @@ -114,7 +113,7 @@ func (gui *Gui) handleCopyPullRequestURLPress(g *gocui.Gui, v *gocui.View) error return nil } -func (gui *Gui) handleGitFetch(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleGitFetch() error { if err := gui.createLoaderPanel(gui.Tr.FetchWait); err != nil { return err } @@ -126,7 +125,7 @@ func (gui *Gui) handleGitFetch(g *gocui.Gui, v *gocui.View) error { return nil } -func (gui *Gui) handleForceCheckout(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleForceCheckout() error { branch := gui.getSelectedBranch() message := gui.Tr.SureForceCheckout title := gui.Tr.ForceCheckoutBranch @@ -208,7 +207,7 @@ func (gui *Gui) handleCheckoutRef(ref string, options handleCheckoutRefOptions) }) } -func (gui *Gui) handleCheckoutByName(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCheckoutByName() error { return gui.prompt(promptOpts{ title: gui.Tr.BranchName + ":", findSuggestionsFunc: gui.findBranchNameSuggestions, @@ -251,7 +250,7 @@ func (gui *Gui) createNewBranchWithName(newBranchName string) error { return gui.refreshSidePanels(refreshOptions{mode: ASYNC}) } -func (gui *Gui) handleDeleteBranch(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleDeleteBranch() error { return gui.deleteBranch(false) } @@ -328,7 +327,7 @@ func (gui *Gui) mergeBranchIntoCheckedOutBranch(branchName string) error { }) } -func (gui *Gui) handleMerge(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleMerge() error { if ok, err := gui.validateNotInFilterMode(); err != nil || !ok { return err } @@ -337,7 +336,7 @@ func (gui *Gui) handleMerge(g *gocui.Gui, v *gocui.View) error { return gui.mergeBranchIntoCheckedOutBranch(selectedBranchName) } -func (gui *Gui) handleRebaseOntoLocalBranch(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleRebaseOntoLocalBranch() error { selectedBranchName := gui.getSelectedBranch().Name return gui.handleRebaseOntoBranch(selectedBranchName) } @@ -369,7 +368,7 @@ func (gui *Gui) handleRebaseOntoBranch(selectedBranchName string) error { }) } -func (gui *Gui) handleFastForward(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleFastForward() error { branch := gui.getSelectedBranch() if branch == nil { return nil @@ -414,7 +413,7 @@ func (gui *Gui) handleFastForward(g *gocui.Gui, v *gocui.View) error { return nil } -func (gui *Gui) handleCreateResetToBranchMenu(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCreateResetToBranchMenu() error { branch := gui.getSelectedBranch() if branch == nil { return nil @@ -423,7 +422,7 @@ func (gui *Gui) handleCreateResetToBranchMenu(g *gocui.Gui, v *gocui.View) error return gui.createResetMenu(branch.Name) } -func (gui *Gui) handleRenameBranch(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleRenameBranch() error { branch := gui.getSelectedBranch() if branch == nil { return nil diff --git a/pkg/gui/commit_files_panel.go b/pkg/gui/commit_files_panel.go index 1df42e41e..c72ee3b13 100644 --- a/pkg/gui/commit_files_panel.go +++ b/pkg/gui/commit_files_panel.go @@ -1,7 +1,6 @@ package gui import ( - "github.com/jesseduffield/gocui" "github.com/jesseduffield/lazygit/pkg/commands/models" "github.com/jesseduffield/lazygit/pkg/commands/patch" "github.com/jesseduffield/lazygit/pkg/gui/filetree" @@ -57,7 +56,7 @@ func (gui *Gui) handleCommitFileSelect() error { }) } -func (gui *Gui) handleCheckoutCommitFile(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCheckoutCommitFile() error { node := gui.getSelectedCommitFileNode() if node == nil { return nil @@ -70,7 +69,7 @@ func (gui *Gui) handleCheckoutCommitFile(g *gocui.Gui, v *gocui.View) error { return gui.refreshSidePanels(refreshOptions{mode: ASYNC}) } -func (gui *Gui) handleDiscardOldFileChange(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleDiscardOldFileChange() error { if ok, err := gui.validateNormalWorkingTreeState(); !ok { return err } @@ -111,7 +110,7 @@ func (gui *Gui) refreshCommitFilesView() error { return gui.postRefreshUpdate(gui.Contexts.CommitFiles.Context) } -func (gui *Gui) handleOpenOldCommitFile(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleOpenOldCommitFile() error { node := gui.getSelectedCommitFileNode() if node == nil { return nil @@ -120,7 +119,7 @@ func (gui *Gui) handleOpenOldCommitFile(g *gocui.Gui, v *gocui.View) error { return gui.openFile(node.GetPath()) } -func (gui *Gui) handleEditCommitFile(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleEditCommitFile() error { node := gui.getSelectedCommitFileNode() if node == nil { return nil @@ -133,7 +132,7 @@ func (gui *Gui) handleEditCommitFile(g *gocui.Gui, v *gocui.View) error { return gui.editFile(node.GetPath()) } -func (gui *Gui) handleToggleFileForPatch(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleToggleFileForPatch() error { node := gui.getSelectedCommitFileNode() if node == nil { return nil @@ -195,7 +194,7 @@ func (gui *Gui) startPatchManager() error { return nil } -func (gui *Gui) handleEnterCommitFile(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleEnterCommitFile() error { return gui.enterCommitFile(-1) } diff --git a/pkg/gui/commit_message_panel.go b/pkg/gui/commit_message_panel.go index 1cdd51770..983d02af8 100644 --- a/pkg/gui/commit_message_panel.go +++ b/pkg/gui/commit_message_panel.go @@ -26,8 +26,9 @@ func (gui *Gui) runSyncOrAsyncCommand(sub *exec.Cmd, err error) (bool, error) { return true, nil } -func (gui *Gui) handleCommitConfirm(g *gocui.Gui, v *gocui.View) error { - message := gui.trimmedContent(v) +func (gui *Gui) handleCommitConfirm() error { + commitMessageView := gui.getCommitMessageView() + message := gui.trimmedContent(commitMessageView) if message == "" { return gui.createErrorPanel(gui.Tr.CommitWithoutMessageErr) } @@ -44,12 +45,12 @@ func (gui *Gui) handleCommitConfirm(g *gocui.Gui, v *gocui.View) error { return nil } - gui.clearEditorView(v) + gui.clearEditorView(commitMessageView) _ = gui.returnFromContext() return gui.refreshSidePanels(refreshOptions{mode: ASYNC}) } -func (gui *Gui) handleCommitClose(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCommitClose() error { return gui.returnFromContext() } diff --git a/pkg/gui/commits_panel.go b/pkg/gui/commits_panel.go index 1ad295763..af4b9feed 100644 --- a/pkg/gui/commits_panel.go +++ b/pkg/gui/commits_panel.go @@ -3,7 +3,6 @@ package gui import ( "sync" - "github.com/jesseduffield/gocui" "github.com/jesseduffield/lazygit/pkg/commands" "github.com/jesseduffield/lazygit/pkg/commands/models" "github.com/jesseduffield/lazygit/pkg/utils" @@ -148,7 +147,7 @@ func (gui *Gui) refreshRebaseCommits() error { // specific functions -func (gui *Gui) handleCommitSquashDown(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCommitSquashDown() error { if ok, err := gui.validateNotInFilterMode(); err != nil || !ok { return err } @@ -177,7 +176,7 @@ func (gui *Gui) handleCommitSquashDown(g *gocui.Gui, v *gocui.View) error { }) } -func (gui *Gui) handleCommitFixup(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCommitFixup() error { if ok, err := gui.validateNotInFilterMode(); err != nil || !ok { return err } @@ -206,7 +205,7 @@ func (gui *Gui) handleCommitFixup(g *gocui.Gui, v *gocui.View) error { }) } -func (gui *Gui) handleRenameCommit(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleRenameCommit() error { if ok, err := gui.validateNotInFilterMode(); err != nil || !ok { return err } @@ -246,7 +245,7 @@ func (gui *Gui) handleRenameCommit(g *gocui.Gui, v *gocui.View) error { }) } -func (gui *Gui) handleRenameCommitEditor(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleRenameCommitEditor() error { if ok, err := gui.validateNotInFilterMode(); err != nil || !ok { return err } @@ -295,7 +294,7 @@ func (gui *Gui) handleMidRebaseCommand(action string) (bool, error) { return true, gui.refreshRebaseCommits() } -func (gui *Gui) handleCommitDelete(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCommitDelete() error { if ok, err := gui.validateNotInFilterMode(); err != nil || !ok { return err } @@ -320,7 +319,7 @@ func (gui *Gui) handleCommitDelete(g *gocui.Gui, v *gocui.View) error { }) } -func (gui *Gui) handleCommitMoveDown(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCommitMoveDown() error { if ok, err := gui.validateNotInFilterMode(); err != nil || !ok { return err } @@ -347,7 +346,7 @@ func (gui *Gui) handleCommitMoveDown(g *gocui.Gui, v *gocui.View) error { }) } -func (gui *Gui) handleCommitMoveUp(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCommitMoveUp() error { if ok, err := gui.validateNotInFilterMode(); err != nil || !ok { return err } @@ -374,7 +373,7 @@ func (gui *Gui) handleCommitMoveUp(g *gocui.Gui, v *gocui.View) error { }) } -func (gui *Gui) handleCommitEdit(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCommitEdit() error { if ok, err := gui.validateNotInFilterMode(); err != nil || !ok { return err } @@ -393,7 +392,7 @@ func (gui *Gui) handleCommitEdit(g *gocui.Gui, v *gocui.View) error { }) } -func (gui *Gui) handleCommitAmendTo(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCommitAmendTo() error { if ok, err := gui.validateNotInFilterMode(); err != nil || !ok { return err } @@ -410,7 +409,7 @@ func (gui *Gui) handleCommitAmendTo(g *gocui.Gui, v *gocui.View) error { }) } -func (gui *Gui) handleCommitPick(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCommitPick() error { if ok, err := gui.validateNotInFilterMode(); err != nil || !ok { return err } @@ -425,10 +424,10 @@ func (gui *Gui) handleCommitPick(g *gocui.Gui, v *gocui.View) error { // at this point we aren't actually rebasing so we will interpret this as an // attempt to pull. We might revoke this later after enabling configurable keybindings - return gui.handlePullFiles(g, v) + return gui.handlePullFiles() } -func (gui *Gui) handleCommitRevert(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCommitRevert() error { if ok, err := gui.validateNotInFilterMode(); err != nil || !ok { return err } @@ -449,7 +448,7 @@ func (gui *Gui) handleViewCommitFiles() error { return gui.switchToCommitFilesContext(commit.Sha, true, gui.Contexts.BranchCommits.Context, "commits") } -func (gui *Gui) handleCreateFixupCommit(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCreateFixupCommit() error { if ok, err := gui.validateNotInFilterMode(); err != nil || !ok { return err } @@ -479,7 +478,7 @@ func (gui *Gui) handleCreateFixupCommit(g *gocui.Gui, v *gocui.View) error { }) } -func (gui *Gui) handleSquashAllAboveFixupCommits(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleSquashAllAboveFixupCommits() error { if ok, err := gui.validateNotInFilterMode(); err != nil || !ok { return err } @@ -508,7 +507,7 @@ func (gui *Gui) handleSquashAllAboveFixupCommits(g *gocui.Gui, v *gocui.View) er }) } -func (gui *Gui) handleTagCommit(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleTagCommit() error { // TODO: bring up menu asking if you want to make a lightweight or annotated tag // if annotated, switch to a subprocess to create the message @@ -532,7 +531,7 @@ func (gui *Gui) handleCreateLightweightTag(commitSha string) error { }) } -func (gui *Gui) handleCheckoutCommit(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCheckoutCommit() error { commit := gui.getSelectedLocalCommit() if commit == nil { return nil @@ -547,7 +546,7 @@ func (gui *Gui) handleCheckoutCommit(g *gocui.Gui, v *gocui.View) error { }) } -func (gui *Gui) handleCreateCommitResetMenu(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCreateCommitResetMenu() error { commit := gui.getSelectedLocalCommit() if commit == nil { return gui.createErrorPanel(gui.Tr.NoCommitsThisBranch) @@ -556,7 +555,7 @@ func (gui *Gui) handleCreateCommitResetMenu(g *gocui.Gui, v *gocui.View) error { return gui.createResetMenu(commit.Sha) } -func (gui *Gui) handleOpenSearchForCommitsPanel(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleOpenSearchForCommitsPanel(_viewName string) error { // we usually lazyload these commits but now that we're searching we need to load them now if gui.State.Panels.Commits.LimitCommits { gui.State.Panels.Commits.LimitCommits = false @@ -565,10 +564,10 @@ func (gui *Gui) handleOpenSearchForCommitsPanel(g *gocui.Gui, v *gocui.View) err } } - return gui.handleOpenSearch(gui.g, v) + return gui.handleOpenSearch("commits") } -func (gui *Gui) handleGotoBottomForCommitsPanel(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleGotoBottomForCommitsPanel() error { // we usually lazyload these commits but now that we're searching we need to load them now if gui.State.Panels.Commits.LimitCommits { gui.State.Panels.Commits.LimitCommits = false @@ -579,7 +578,7 @@ func (gui *Gui) handleGotoBottomForCommitsPanel(g *gocui.Gui, v *gocui.View) err for _, context := range gui.getListContexts() { if context.ViewName == "commits" { - return context.handleGotoBottom(g, v) + return context.handleGotoBottom() } } diff --git a/pkg/gui/confirmation_panel.go b/pkg/gui/confirmation_panel.go index f21a3be71..74c4cc9d6 100644 --- a/pkg/gui/confirmation_panel.go +++ b/pkg/gui/confirmation_panel.go @@ -317,6 +317,12 @@ func (gui *Gui) setKeyBindings(opts createPopupPanelOpts) error { return nil } +func (gui *Gui) wrappedHandler(f func() error) func(g *gocui.Gui, v *gocui.View) error { + return func(g *gocui.Gui, v *gocui.View) error { + return f() + } +} + func (gui *Gui) createErrorPanel(message string) error { colorFunction := color.New(color.FgRed).SprintFunc() coloredMessage := colorFunction(strings.TrimSpace(message)) diff --git a/pkg/gui/credentials_panel.go b/pkg/gui/credentials_panel.go index fe97dc9aa..d79d4cf67 100644 --- a/pkg/gui/credentials_panel.go +++ b/pkg/gui/credentials_panel.go @@ -39,10 +39,11 @@ func (gui *Gui) promptUserForCredential(passOrUname string) string { return userInput + "\n" } -func (gui *Gui) handleSubmitCredential(g *gocui.Gui, v *gocui.View) error { - message := gui.trimmedContent(v) +func (gui *Gui) handleSubmitCredential() error { + credentialsView := gui.getCredentialsView() + message := gui.trimmedContent(credentialsView) gui.credentials <- message - gui.clearEditorView(v) + gui.clearEditorView(credentialsView) if err := gui.returnFromContext(); err != nil { return err } @@ -50,7 +51,7 @@ func (gui *Gui) handleSubmitCredential(g *gocui.Gui, v *gocui.View) error { return gui.refreshSidePanels(refreshOptions{}) } -func (gui *Gui) handleCloseCredentialsView(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCloseCredentialsView() error { gui.credentials <- "" return gui.returnFromContext() } diff --git a/pkg/gui/custom_commands.go b/pkg/gui/custom_commands.go index d3fe62840..1411ec34f 100644 --- a/pkg/gui/custom_commands.go +++ b/pkg/gui/custom_commands.go @@ -198,7 +198,7 @@ func (gui *Gui) GetCustomCommandKeybindings() []*Binding { Contexts: contexts, Key: gui.getKey(customCommand.Key), Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.handleCustomCommandKeybinding(customCommand)), + Handler: gui.handleCustomCommandKeybinding(customCommand), Description: description, }) } diff --git a/pkg/gui/diffing.go b/pkg/gui/diffing.go index 408ae436f..5bce9fe44 100644 --- a/pkg/gui/diffing.go +++ b/pkg/gui/diffing.go @@ -3,8 +3,6 @@ package gui import ( "fmt" "strings" - - "github.com/jesseduffield/gocui" ) func (gui *Gui) exitDiffMode() error { @@ -102,7 +100,7 @@ func (gui *Gui) diffStr() string { return output } -func (gui *Gui) handleCreateDiffingMenuPanel(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCreateDiffingMenuPanel() error { if gui.popupPanelFocused() { return nil } diff --git a/pkg/gui/files_panel.go b/pkg/gui/files_panel.go index f7edb2b25..2c9640f41 100644 --- a/pkg/gui/files_panel.go +++ b/pkg/gui/files_panel.go @@ -183,7 +183,7 @@ func (gui *Gui) stageSelectedFile() error { return gui.GitCommand.StageFile(file.Name) } -func (gui *Gui) handleEnterFile(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleEnterFile() error { return gui.enterFile(false, -1) } @@ -277,7 +277,7 @@ func (gui *Gui) focusAndSelectFile() error { return gui.selectFile(false) } -func (gui *Gui) handleStageAll(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleStageAll() error { var err error if gui.allFilesStaged() { err = gui.GitCommand.UnstageAll() @@ -350,7 +350,7 @@ func (gui *Gui) handleIgnoreFile() error { return gui.refreshSidePanels(refreshOptions{scope: []RefreshableView{FILES}}) } -func (gui *Gui) handleWIPCommitPress(g *gocui.Gui, filesView *gocui.View) error { +func (gui *Gui) handleWIPCommitPress() error { skipHookPreifx := gui.Config.GetUserConfig().Git.SkipHookPrefix if skipHookPreifx == "" { return gui.createErrorPanel(gui.Tr.SkipHookPrefixNotConfigured) @@ -500,7 +500,7 @@ func (gui *Gui) editFile(filename string) error { return err } -func (gui *Gui) handleFileEdit(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleFileEdit() error { node := gui.getSelectedFileNode() if node == nil { return nil @@ -513,7 +513,7 @@ func (gui *Gui) handleFileEdit(g *gocui.Gui, v *gocui.View) error { return gui.editFile(node.GetPath()) } -func (gui *Gui) handleFileOpen(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleFileOpen() error { node := gui.getSelectedFileNode() if node == nil { return nil @@ -522,7 +522,7 @@ func (gui *Gui) handleFileOpen(g *gocui.Gui, v *gocui.View) error { return gui.openFile(node.GetPath()) } -func (gui *Gui) handleRefreshFiles(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleRefreshFiles() error { return gui.refreshSidePanels(refreshOptions{scope: []RefreshableView{FILES}}) } @@ -615,7 +615,7 @@ func (gui *Gui) findNewSelectedIdx(prevNodes []*filetree.FileNode, currNodes []* return -1 } -func (gui *Gui) handlePullFiles(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handlePullFiles() error { if gui.popupPanelFocused() { return nil } @@ -706,7 +706,7 @@ func (gui *Gui) pullWithMode(mode string, opts PullFilesOptions) error { } } -func (gui *Gui) pushWithForceFlag(v *gocui.View, force bool, upstream string, args string) error { +func (gui *Gui) pushWithForceFlag(force bool, upstream string, args string) error { if err := gui.createLoaderPanel(gui.Tr.PushWait); err != nil { return err } @@ -723,7 +723,7 @@ func (gui *Gui) pushWithForceFlag(v *gocui.View, force bool, upstream string, ar title: gui.Tr.ForcePush, prompt: gui.Tr.ForcePushPrompt, handleConfirm: func() error { - return gui.pushWithForceFlag(v, true, upstream, args) + return gui.pushWithForceFlag(true, upstream, args) }, }) return @@ -734,7 +734,7 @@ func (gui *Gui) pushWithForceFlag(v *gocui.View, force bool, upstream string, ar return nil } -func (gui *Gui) pushFiles(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) pushFiles() error { if gui.popupPanelFocused() { return nil } @@ -750,23 +750,23 @@ func (gui *Gui) pushFiles(g *gocui.Gui, v *gocui.View) error { } for branchName, branch := range conf.Branches { if branchName == currentBranch.Name { - return gui.pushWithForceFlag(v, false, "", fmt.Sprintf("%s %s", branch.Remote, branchName)) + return gui.pushWithForceFlag(false, "", fmt.Sprintf("%s %s", branch.Remote, branchName)) } } if gui.GitCommand.PushToCurrent { - return gui.pushWithForceFlag(v, false, "", "--set-upstream") + return gui.pushWithForceFlag(false, "", "--set-upstream") } else { return gui.prompt(promptOpts{ title: gui.Tr.EnterUpstream, initialContent: "origin " + currentBranch.Name, handleConfirm: func(response string) error { - return gui.pushWithForceFlag(v, false, response, "") + return gui.pushWithForceFlag(false, response, "") }, }) } } else if currentBranch.Pullables == "0" { - return gui.pushWithForceFlag(v, false, "", "") + return gui.pushWithForceFlag(false, "", "") } forcePushDisabled := gui.Config.GetUserConfig().Git.DisableForcePushing @@ -778,7 +778,7 @@ func (gui *Gui) pushFiles(g *gocui.Gui, v *gocui.View) error { title: gui.Tr.ForcePush, prompt: gui.Tr.ForcePushPrompt, handleConfirm: func() error { - return gui.pushWithForceFlag(v, true, "", "") + return gui.pushWithForceFlag(true, "", "") }, }) } @@ -812,7 +812,7 @@ func (gui *Gui) anyFilesWithMergeConflicts() bool { return false } -func (gui *Gui) handleCustomCommand(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCustomCommand() error { return gui.prompt(promptOpts{ title: gui.Tr.CustomCommand, handleConfirm: func(command string) error { @@ -822,7 +822,7 @@ func (gui *Gui) handleCustomCommand(g *gocui.Gui, v *gocui.View) error { }) } -func (gui *Gui) handleCreateStashMenu(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCreateStashMenu() error { menuItems := []*menuItem{ { displayString: gui.Tr.LcStashAllChanges, @@ -841,11 +841,11 @@ func (gui *Gui) handleCreateStashMenu(g *gocui.Gui, v *gocui.View) error { return gui.createMenu(gui.Tr.LcStashOptions, menuItems, createMenuOptions{showCancel: true}) } -func (gui *Gui) handleStashChanges(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleStashChanges() error { return gui.handleStashSave(gui.GitCommand.StashSave) } -func (gui *Gui) handleCreateResetToUpstreamMenu(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCreateResetToUpstreamMenu() error { return gui.createResetMenu("@{upstream}") } diff --git a/pkg/gui/filtering_menu_panel.go b/pkg/gui/filtering_menu_panel.go index ebebbd869..75c1e1c86 100644 --- a/pkg/gui/filtering_menu_panel.go +++ b/pkg/gui/filtering_menu_panel.go @@ -3,17 +3,15 @@ package gui import ( "fmt" "strings" - - "github.com/jesseduffield/gocui" ) -func (gui *Gui) handleCreateFilteringMenuPanel(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCreateFilteringMenuPanel() error { if gui.popupPanelFocused() { return nil } fileName := "" - switch v.Name() { + switch gui.currentViewName() { case "files": node := gui.getSelectedFileNode() if node != nil { diff --git a/pkg/gui/git_flow.go b/pkg/gui/git_flow.go index 2aac6e3bb..4440c6ebd 100644 --- a/pkg/gui/git_flow.go +++ b/pkg/gui/git_flow.go @@ -5,7 +5,6 @@ import ( "regexp" "strings" - "github.com/jesseduffield/gocui" "github.com/jesseduffield/lazygit/pkg/utils" ) @@ -37,7 +36,7 @@ func (gui *Gui) gitFlowFinishBranch(gitFlowConfig string, branchName string) err return gui.Errors.ErrSubProcess } -func (gui *Gui) handleCreateGitFlowMenu(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCreateGitFlowMenu() error { branch := gui.getSelectedBranch() if branch == nil { return nil diff --git a/pkg/gui/global_handlers.go b/pkg/gui/global_handlers.go index a76087cda..bcaff5871 100644 --- a/pkg/gui/global_handlers.go +++ b/pkg/gui/global_handlers.go @@ -5,7 +5,6 @@ import ( "math" "strings" - "github.com/jesseduffield/gocui" "github.com/jesseduffield/lazygit/pkg/commands" "github.com/jesseduffield/lazygit/pkg/utils" ) @@ -48,13 +47,13 @@ func prevIntInCycle(sl []WindowMaximisation, current WindowMaximisation) WindowM return sl[len(sl)-1] } -func (gui *Gui) nextScreenMode(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) nextScreenMode() error { gui.State.ScreenMode = nextIntInCycle([]WindowMaximisation{SCREEN_NORMAL, SCREEN_HALF, SCREEN_FULL}, gui.State.ScreenMode) return gui.rerenderViewsWithScreenModeDependentContent() } -func (gui *Gui) prevScreenMode(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) prevScreenMode() error { gui.State.ScreenMode = prevIntInCycle([]WindowMaximisation{SCREEN_NORMAL, SCREEN_HALF, SCREEN_FULL}, gui.State.ScreenMode) return gui.rerenderViewsWithScreenModeDependentContent() @@ -121,70 +120,80 @@ func (gui *Gui) scrollDownMain() error { return gui.scrollDownView("main") } -func (gui *Gui) scrollUpSecondary(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) scrollUpSecondary() error { return gui.scrollUpView("secondary") } -func (gui *Gui) scrollDownSecondary(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) scrollDownSecondary() error { return gui.scrollDownView("secondary") } -func (gui *Gui) scrollUpConfirmationPanel(g *gocui.Gui, v *gocui.View) error { - if v.Editable { +func (gui *Gui) scrollUpConfirmationPanel() error { + view := gui.getConfirmationView() + if view != nil || view.Editable { return nil } + return gui.scrollUpView("confirmation") } -func (gui *Gui) scrollDownConfirmationPanel(g *gocui.Gui, v *gocui.View) error { - if v.Editable { +func (gui *Gui) scrollDownConfirmationPanel() error { + view := gui.getConfirmationView() + if view != nil || view.Editable { return nil } + return gui.scrollDownView("confirmation") } -func (gui *Gui) handleRefresh(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleRefresh() error { return gui.refreshSidePanels(refreshOptions{mode: ASYNC}) } -func (gui *Gui) handleMouseDownMain(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleMouseDownMain() error { if gui.popupPanelFocused() { return nil } - switch g.CurrentView().Name() { + view := gui.getMainView() + + switch gui.g.CurrentView().Name() { case "files": // set filename, set primary/secondary selected, set line number, then switch context // I'll need to know it was changed though. // Could I pass something along to the context change? - return gui.enterFile(false, v.SelectedLineIdx()) + return gui.enterFile(false, view.SelectedLineIdx()) case "commitFiles": - return gui.enterCommitFile(v.SelectedLineIdx()) + return gui.enterCommitFile(view.SelectedLineIdx()) } return nil } -func (gui *Gui) handleMouseDownSecondary(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleMouseDownSecondary() error { if gui.popupPanelFocused() { return nil } - switch g.CurrentView().Name() { + view := gui.getSecondaryView() + + switch gui.g.CurrentView().Name() { case "files": - return gui.enterFile(true, v.SelectedLineIdx()) + return gui.enterFile(true, view.SelectedLineIdx()) } return nil } -func (gui *Gui) handleInfoClick(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleInfoClick() error { if !gui.g.Mouse { return nil } - cx, _ := v.Cursor() - width, _ := v.Size() + view := gui.getInformationView() + + cx, _ := view.Cursor() + width, _ := view.Size() for _, mode := range gui.modeStatuses() { if mode.isActive() { diff --git a/pkg/gui/keybindings.go b/pkg/gui/keybindings.go index 41c61e07f..a2f762da6 100644 --- a/pkg/gui/keybindings.go +++ b/pkg/gui/keybindings.go @@ -16,7 +16,7 @@ import ( type Binding struct { ViewName string Contexts []string - Handler func(*gocui.Gui, *gocui.View) error + Handler func() error Key interface{} // FIXME: find out how to get `gocui.Key | rune` Modifier gocui.Modifier Description string @@ -208,7 +208,7 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { ViewName: "", Key: gui.getKey(config.Universal.Quit), Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.handleQuit), + Handler: gui.handleQuit, }, { ViewName: "", @@ -220,7 +220,7 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { ViewName: "", Key: gui.getKey(config.Universal.QuitAlt1), Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.handleQuit), + Handler: gui.handleQuit, }, { ViewName: "", @@ -231,14 +231,14 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { { ViewName: "", Key: gui.getKey(config.Universal.ScrollUpMain), - Handler: gui.wrappedHandler(gui.scrollUpMain), + Handler: gui.scrollUpMain, Alternative: "fn+up", Description: gui.Tr.LcScrollUpMainPanel, }, { ViewName: "", Key: gui.getKey(config.Universal.ScrollDownMain), - Handler: gui.wrappedHandler(gui.scrollDownMain), + Handler: gui.scrollDownMain, Alternative: "fn+down", Description: gui.Tr.LcScrollDownMainPanel, }, @@ -246,30 +246,30 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { ViewName: "", Key: gui.getKey(config.Universal.ScrollUpMainAlt1), Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.scrollUpMain), + Handler: gui.scrollUpMain, }, { ViewName: "", Key: gui.getKey(config.Universal.ScrollDownMainAlt1), Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.scrollDownMain), + Handler: gui.scrollDownMain, }, { ViewName: "", Key: gui.getKey(config.Universal.ScrollUpMainAlt2), Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.scrollUpMain), + Handler: gui.scrollUpMain, }, { ViewName: "", Key: gui.getKey(config.Universal.ScrollDownMainAlt2), Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.scrollDownMain), + Handler: gui.scrollDownMain, }, { ViewName: "", Key: gui.getKey(config.Universal.CreateRebaseOptionsMenu), - Handler: gui.wrappedHandler(gui.handleCreateRebaseOptionsMenu), + Handler: gui.handleCreateRebaseOptionsMenu, Description: gui.Tr.ViewMergeRebaseOptions, OpensMenu: true, }, @@ -362,20 +362,20 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { { ViewName: "status", Key: gui.getKey(config.Status.RecentRepos), - Handler: gui.wrappedHandler(gui.handleCreateRecentReposMenu), + Handler: gui.handleCreateRecentReposMenu, Description: gui.Tr.SwitchRepo, }, { ViewName: "status", Key: gui.getKey(config.Status.AllBranchesLogGraph), - Handler: gui.wrappedHandler(gui.handleShowAllBranchLogs), + Handler: gui.handleShowAllBranchLogs, Description: gui.Tr.LcAllBranchesLogGraph, }, { ViewName: "files", Contexts: []string{FILES_CONTEXT_KEY}, Key: gui.getKey(config.Files.CommitChanges), - Handler: gui.wrappedHandler(gui.handleCommitPress), + Handler: gui.handleCommitPress, Description: gui.Tr.CommitChanges, }, { @@ -389,28 +389,28 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { ViewName: "files", Contexts: []string{FILES_CONTEXT_KEY}, Key: gui.getKey(config.Files.AmendLastCommit), - Handler: gui.wrappedHandler(gui.handleAmendCommitPress), + Handler: gui.handleAmendCommitPress, Description: gui.Tr.AmendLastCommit, }, { ViewName: "files", Contexts: []string{FILES_CONTEXT_KEY}, Key: gui.getKey(config.Files.CommitChangesWithEditor), - Handler: gui.wrappedHandler(gui.handleCommitEditorPress), + Handler: gui.handleCommitEditorPress, Description: gui.Tr.CommitChangesWithEditor, }, { ViewName: "files", Contexts: []string{FILES_CONTEXT_KEY}, Key: gui.getKey(config.Universal.Select), - Handler: gui.wrappedHandler(gui.handleFilePress), + Handler: gui.handleFilePress, Description: gui.Tr.LcToggleStaged, }, { ViewName: "files", Contexts: []string{FILES_CONTEXT_KEY}, Key: gui.getKey(config.Universal.Remove), - Handler: gui.wrappedHandler(gui.handleCreateDiscardMenu), + Handler: gui.handleCreateDiscardMenu, Description: gui.Tr.LcViewDiscardOptions, OpensMenu: true, }, @@ -432,7 +432,7 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { ViewName: "files", Contexts: []string{FILES_CONTEXT_KEY}, Key: gui.getKey(config.Files.IgnoreFile), - Handler: gui.wrappedHandler(gui.handleIgnoreFile), + Handler: gui.handleIgnoreFile, Description: gui.Tr.LcIgnoreFile, }, { @@ -490,7 +490,7 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { ViewName: "files", Contexts: []string{FILES_CONTEXT_KEY}, Key: gui.getKey(config.Universal.CopyToClipboard), - Handler: gui.wrappedHandler(gui.handleCopySelectedSideContextItemToClipboard), + Handler: gui.handleCopySelectedSideContextItemToClipboard, Description: gui.Tr.LcCopyFileNameToClipboard, }, { @@ -511,7 +511,7 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { ViewName: "files", Contexts: []string{FILES_CONTEXT_KEY}, Key: gui.getKey(config.Files.ToggleTreeView), - Handler: gui.wrappedHandler(gui.handleToggleFileTreeView), + Handler: gui.handleToggleFileTreeView, Description: gui.Tr.LcToggleTreeView, }, { @@ -553,7 +553,7 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { ViewName: "branches", Contexts: []string{LOCAL_BRANCHES_CONTEXT_KEY}, Key: gui.getKey(config.Universal.New), - Handler: gui.wrappedHandler(gui.handleNewBranchOffCurrentItem), + Handler: gui.handleNewBranchOffCurrentItem, Description: gui.Tr.LcNewBranch, }, { @@ -611,14 +611,14 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { ViewName: "branches", Contexts: []string{LOCAL_BRANCHES_CONTEXT_KEY}, Key: gui.getKey(config.Universal.CopyToClipboard), - Handler: gui.wrappedHandler(gui.handleCopySelectedSideContextItemToClipboard), + Handler: gui.handleCopySelectedSideContextItemToClipboard, Description: gui.Tr.LcCopyBranchNameToClipboard, }, { ViewName: "branches", Contexts: []string{LOCAL_BRANCHES_CONTEXT_KEY}, Key: gui.getKey(config.Universal.GoInto), - Handler: gui.wrappedHandler(gui.handleSwitchToSubCommits), + Handler: gui.handleSwitchToSubCommits, Description: gui.Tr.LcViewCommits, }, { @@ -661,7 +661,7 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { ViewName: "branches", Contexts: []string{TAGS_CONTEXT_KEY}, Key: gui.getKey(config.Universal.GoInto), - Handler: gui.wrappedHandler(gui.handleSwitchToSubCommits), + Handler: gui.handleSwitchToSubCommits, Description: gui.Tr.LcViewCommits, }, { @@ -683,7 +683,7 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { ViewName: "branches", Contexts: []string{REMOTE_BRANCHES_CONTEXT_KEY}, Key: gui.getKey(config.Universal.GoInto), - Handler: gui.wrappedHandler(gui.handleSwitchToSubCommits), + Handler: gui.handleSwitchToSubCommits, Description: gui.Tr.LcViewCommits, }, { @@ -795,35 +795,35 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { ViewName: "commits", Contexts: []string{BRANCH_COMMITS_CONTEXT_KEY}, Key: gui.getKey(config.Commits.CherryPickCopy), - Handler: gui.wrappedHandler(gui.handleCopyCommit), + Handler: gui.handleCopyCommit, Description: gui.Tr.LcCherryPickCopy, }, { ViewName: "commits", Contexts: []string{BRANCH_COMMITS_CONTEXT_KEY}, Key: gui.getKey(config.Universal.CopyToClipboard), - Handler: gui.wrappedHandler(gui.handleCopySelectedSideContextItemToClipboard), + Handler: gui.handleCopySelectedSideContextItemToClipboard, Description: gui.Tr.LcCopyCommitShaToClipboard, }, { ViewName: "commits", Contexts: []string{BRANCH_COMMITS_CONTEXT_KEY}, Key: gui.getKey(config.Commits.CherryPickCopyRange), - Handler: gui.wrappedHandler(gui.handleCopyCommitRange), + Handler: gui.handleCopyCommitRange, Description: gui.Tr.LcCherryPickCopyRange, }, { ViewName: "commits", Contexts: []string{BRANCH_COMMITS_CONTEXT_KEY}, Key: gui.getKey(config.Commits.PasteCommits), - Handler: gui.wrappedHandler(gui.HandlePasteCommits), + Handler: gui.HandlePasteCommits, Description: gui.Tr.LcPasteCommits, }, { ViewName: "commits", Contexts: []string{BRANCH_COMMITS_CONTEXT_KEY}, Key: gui.getKey(config.Universal.GoInto), - Handler: gui.wrappedHandler(gui.handleViewCommitFiles), + Handler: gui.handleViewCommitFiles, Description: gui.Tr.LcViewCommitFiles, }, { @@ -838,7 +838,7 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { Contexts: []string{BRANCH_COMMITS_CONTEXT_KEY}, Key: gui.getKey(config.Universal.New), Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.handleNewBranchOffCurrentItem), + Handler: gui.handleNewBranchOffCurrentItem, Description: gui.Tr.LcCreateNewBranchFromCommit, }, { @@ -852,21 +852,21 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { ViewName: "commits", Contexts: []string{BRANCH_COMMITS_CONTEXT_KEY}, Key: gui.getKey(config.Commits.ResetCherryPick), - Handler: gui.wrappedHandler(gui.exitCherryPickingMode), + Handler: gui.exitCherryPickingMode, Description: gui.Tr.LcResetCherryPick, }, { ViewName: "commits", Contexts: []string{BRANCH_COMMITS_CONTEXT_KEY}, Key: gui.getKey(config.Commits.CopyCommitMessageToClipboard), - Handler: gui.wrappedHandler(gui.handleCopySelectedCommitMessageToClipboard), + Handler: gui.handleCopySelectedCommitMessageToClipboard, Description: gui.Tr.LcCopyCommitMessageToClipboard, }, { ViewName: "commits", Contexts: []string{REFLOG_COMMITS_CONTEXT_KEY}, Key: gui.getKey(config.Universal.GoInto), - Handler: gui.wrappedHandler(gui.handleViewReflogCommitFiles), + Handler: gui.handleViewReflogCommitFiles, Description: gui.Tr.LcViewCommitFiles, }, { @@ -888,35 +888,35 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { ViewName: "commits", Contexts: []string{REFLOG_COMMITS_CONTEXT_KEY}, Key: gui.getKey(config.Commits.CherryPickCopy), - Handler: gui.wrappedHandler(gui.handleCopyCommit), + Handler: gui.handleCopyCommit, Description: gui.Tr.LcCherryPickCopy, }, { ViewName: "commits", Contexts: []string{REFLOG_COMMITS_CONTEXT_KEY}, Key: gui.getKey(config.Commits.CherryPickCopyRange), - Handler: gui.wrappedHandler(gui.handleCopyCommitRange), + Handler: gui.handleCopyCommitRange, Description: gui.Tr.LcCherryPickCopyRange, }, { ViewName: "commits", Contexts: []string{REFLOG_COMMITS_CONTEXT_KEY}, Key: gui.getKey(config.Commits.ResetCherryPick), - Handler: gui.wrappedHandler(gui.exitCherryPickingMode), + Handler: gui.exitCherryPickingMode, Description: gui.Tr.LcResetCherryPick, }, { ViewName: "commits", Contexts: []string{REFLOG_COMMITS_CONTEXT_KEY}, Key: gui.getKey(config.Universal.CopyToClipboard), - Handler: gui.wrappedHandler(gui.handleCopySelectedSideContextItemToClipboard), + Handler: gui.handleCopySelectedSideContextItemToClipboard, Description: gui.Tr.LcCopyCommitShaToClipboard, }, { ViewName: "branches", Contexts: []string{SUB_COMMITS_CONTEXT_KEY}, Key: gui.getKey(config.Universal.GoInto), - Handler: gui.wrappedHandler(gui.handleViewSubCommitFiles), + Handler: gui.handleViewSubCommitFiles, Description: gui.Tr.LcViewCommitFiles, }, { @@ -930,7 +930,7 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { ViewName: "branches", Contexts: []string{SUB_COMMITS_CONTEXT_KEY}, Key: gui.getKey(config.Commits.ViewResetOptions), - Handler: gui.wrappedHandler(gui.handleCreateSubCommitResetMenu), + Handler: gui.handleCreateSubCommitResetMenu, Description: gui.Tr.LcViewResetOptions, OpensMenu: true, }, @@ -938,41 +938,41 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { ViewName: "branches", Contexts: []string{SUB_COMMITS_CONTEXT_KEY}, Key: gui.getKey(config.Universal.New), - Handler: gui.wrappedHandler(gui.handleNewBranchOffCurrentItem), + Handler: gui.handleNewBranchOffCurrentItem, Description: gui.Tr.LcNewBranch, }, { ViewName: "branches", Contexts: []string{SUB_COMMITS_CONTEXT_KEY}, Key: gui.getKey(config.Commits.CherryPickCopy), - Handler: gui.wrappedHandler(gui.handleCopyCommit), + Handler: gui.handleCopyCommit, Description: gui.Tr.LcCherryPickCopy, }, { ViewName: "branches", Contexts: []string{SUB_COMMITS_CONTEXT_KEY}, Key: gui.getKey(config.Commits.CherryPickCopyRange), - Handler: gui.wrappedHandler(gui.handleCopyCommitRange), + Handler: gui.handleCopyCommitRange, Description: gui.Tr.LcCherryPickCopyRange, }, { ViewName: "branches", Contexts: []string{SUB_COMMITS_CONTEXT_KEY}, Key: gui.getKey(config.Commits.ResetCherryPick), - Handler: gui.wrappedHandler(gui.exitCherryPickingMode), + Handler: gui.exitCherryPickingMode, Description: gui.Tr.LcResetCherryPick, }, { ViewName: "branches", Contexts: []string{SUB_COMMITS_CONTEXT_KEY}, Key: gui.getKey(config.Universal.CopyToClipboard), - Handler: gui.wrappedHandler(gui.handleCopySelectedSideContextItemToClipboard), + Handler: gui.handleCopySelectedSideContextItemToClipboard, Description: gui.Tr.LcCopyCommitShaToClipboard, }, { ViewName: "stash", Key: gui.getKey(config.Universal.GoInto), - Handler: gui.wrappedHandler(gui.handleViewStashFiles), + Handler: gui.handleViewStashFiles, Description: gui.Tr.LcViewStashFiles, }, { @@ -996,7 +996,7 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { { ViewName: "stash", Key: gui.getKey(config.Universal.New), - Handler: gui.wrappedHandler(gui.handleNewBranchOffCurrentItem), + Handler: gui.handleNewBranchOffCurrentItem, Description: gui.Tr.LcNewBranch, }, { @@ -1038,7 +1038,7 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { { ViewName: "commitFiles", Key: gui.getKey(config.Universal.CopyToClipboard), - Handler: gui.wrappedHandler(gui.handleCopySelectedSideContextItemToClipboard), + Handler: gui.handleCopySelectedSideContextItemToClipboard, Description: gui.Tr.LcCopyCommitFileNameToClipboard, }, { @@ -1080,7 +1080,7 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { { ViewName: "commitFiles", Key: gui.getKey(config.Files.ToggleTreeView), - Handler: gui.wrappedHandler(gui.handleToggleCommitFileTreeView), + Handler: gui.handleToggleCommitFileTreeView, Description: gui.Tr.LcToggleTreeView, }, { @@ -1127,7 +1127,7 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { ViewName: "main", Contexts: []string{MAIN_NORMAL_CONTEXT_KEY}, Key: gocui.MouseWheelDown, - Handler: gui.wrappedHandler(gui.scrollDownMain), + Handler: gui.scrollDownMain, Description: gui.Tr.ScrollDown, Alternative: "fn+up", }, @@ -1135,7 +1135,7 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { ViewName: "main", Contexts: []string{MAIN_NORMAL_CONTEXT_KEY}, Key: gocui.MouseWheelUp, - Handler: gui.wrappedHandler(gui.scrollUpMain), + Handler: gui.scrollUpMain, Description: gui.Tr.ScrollUp, Alternative: "fn+down", }, @@ -1157,56 +1157,56 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { ViewName: "main", Contexts: []string{MAIN_STAGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.Return), - Handler: gui.wrappedHandler(gui.handleStagingEscape), + Handler: gui.handleStagingEscape, Description: gui.Tr.ReturnToFilesPanel, }, { ViewName: "main", Contexts: []string{MAIN_STAGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.Select), - Handler: gui.wrappedHandler(gui.handleToggleStagedSelection), + Handler: gui.handleToggleStagedSelection, Description: gui.Tr.StageSelection, }, { ViewName: "main", Contexts: []string{MAIN_STAGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.Remove), - Handler: gui.wrappedHandler(gui.handleResetSelection), + Handler: gui.handleResetSelection, Description: gui.Tr.ResetSelection, }, { ViewName: "main", Contexts: []string{MAIN_STAGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.TogglePanel), - Handler: gui.wrappedHandler(gui.handleTogglePanel), + Handler: gui.handleTogglePanel, Description: gui.Tr.TogglePanel, }, { ViewName: "main", Contexts: []string{MAIN_PATCH_BUILDING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.Return), - Handler: gui.wrappedHandler(gui.handleEscapePatchBuildingPanel), + Handler: gui.handleEscapePatchBuildingPanel, Description: gui.Tr.ExitLineByLineMode, }, { ViewName: "main", Contexts: []string{MAIN_PATCH_BUILDING_CONTEXT_KEY, MAIN_STAGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.OpenFile), - Handler: gui.wrappedHandler(gui.handleOpenFileAtLine), + Handler: gui.handleOpenFileAtLine, Description: gui.Tr.LcOpenFile, }, { ViewName: "main", Contexts: []string{MAIN_PATCH_BUILDING_CONTEXT_KEY, MAIN_STAGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.PrevItem), - Handler: gui.wrappedHandler(gui.handleSelectPrevLine), + Handler: gui.handleSelectPrevLine, Description: gui.Tr.PrevLine, }, { ViewName: "main", Contexts: []string{MAIN_PATCH_BUILDING_CONTEXT_KEY, MAIN_STAGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.NextItem), - Handler: gui.wrappedHandler(gui.handleSelectNextLine), + Handler: gui.handleSelectNextLine, Description: gui.Tr.NextLine, }, { @@ -1214,34 +1214,34 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { Contexts: []string{MAIN_PATCH_BUILDING_CONTEXT_KEY, MAIN_STAGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.PrevItemAlt), Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.handleSelectPrevLine), + Handler: gui.handleSelectPrevLine, }, { ViewName: "main", Contexts: []string{MAIN_PATCH_BUILDING_CONTEXT_KEY, MAIN_STAGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.NextItemAlt), Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.handleSelectNextLine), + Handler: gui.handleSelectNextLine, }, { ViewName: "main", Contexts: []string{MAIN_PATCH_BUILDING_CONTEXT_KEY, MAIN_STAGING_CONTEXT_KEY}, Key: gocui.MouseWheelUp, Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.scrollUpMain), + Handler: gui.scrollUpMain, }, { ViewName: "main", Contexts: []string{MAIN_PATCH_BUILDING_CONTEXT_KEY, MAIN_STAGING_CONTEXT_KEY}, Key: gocui.MouseWheelDown, Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.scrollDownMain), + Handler: gui.scrollDownMain, }, { ViewName: "main", Contexts: []string{MAIN_PATCH_BUILDING_CONTEXT_KEY, MAIN_STAGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.PrevBlock), - Handler: gui.wrappedHandler(gui.handleSelectPrevHunk), + Handler: gui.handleSelectPrevHunk, Description: gui.Tr.PrevHunk, }, { @@ -1249,13 +1249,13 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { Contexts: []string{MAIN_PATCH_BUILDING_CONTEXT_KEY, MAIN_STAGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.PrevBlockAlt), Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.handleSelectPrevHunk), + Handler: gui.handleSelectPrevHunk, }, { ViewName: "main", Contexts: []string{MAIN_PATCH_BUILDING_CONTEXT_KEY, MAIN_STAGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.NextBlock), - Handler: gui.wrappedHandler(gui.handleSelectNextHunk), + Handler: gui.handleSelectNextHunk, Description: gui.Tr.NextHunk, }, { @@ -1263,7 +1263,7 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { Contexts: []string{MAIN_PATCH_BUILDING_CONTEXT_KEY, MAIN_STAGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.NextBlockAlt), Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.handleSelectNextHunk), + Handler: gui.handleSelectNextHunk, }, { ViewName: "main", @@ -1284,7 +1284,7 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { Contexts: []string{MAIN_PATCH_BUILDING_CONTEXT_KEY, MAIN_STAGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.NextPage), Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.handleLineByLineNextPage), + Handler: gui.handleLineByLineNextPage, Description: gui.Tr.LcNextPage, Tag: "navigation", }, @@ -1293,7 +1293,7 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { Contexts: []string{MAIN_PATCH_BUILDING_CONTEXT_KEY, MAIN_STAGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.PrevPage), Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.handleLineByLinePrevPage), + Handler: gui.handleLineByLinePrevPage, Description: gui.Tr.LcPrevPage, Tag: "navigation", }, @@ -1302,7 +1302,7 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { Contexts: []string{MAIN_PATCH_BUILDING_CONTEXT_KEY, MAIN_STAGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.GotoTop), Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.handleLineByLineGotoTop), + Handler: gui.handleLineByLineGotoTop, Description: gui.Tr.LcGotoTop, Tag: "navigation", }, @@ -1311,7 +1311,7 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { Contexts: []string{MAIN_PATCH_BUILDING_CONTEXT_KEY, MAIN_STAGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.GotoBottom), Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.handleLineByLineGotoBottom), + Handler: gui.handleLineByLineGotoBottom, Description: gui.Tr.LcGotoBottom, Tag: "navigation", }, @@ -1319,7 +1319,7 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { ViewName: "main", Contexts: []string{MAIN_PATCH_BUILDING_CONTEXT_KEY, MAIN_STAGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.StartSearch), - Handler: gui.handleOpenSearch, + Handler: func() error { return gui.handleOpenSearch("main") }, Description: gui.Tr.LcStartSearch, Tag: "navigation", }, @@ -1327,14 +1327,14 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { ViewName: "main", Contexts: []string{MAIN_PATCH_BUILDING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.Select), - Handler: gui.wrappedHandler(gui.handleToggleSelectionForPatch), + Handler: gui.handleToggleSelectionForPatch, Description: gui.Tr.ToggleSelectionForPatch, }, { ViewName: "main", Contexts: []string{MAIN_PATCH_BUILDING_CONTEXT_KEY, MAIN_STAGING_CONTEXT_KEY}, Key: gui.getKey(config.Main.ToggleDragSelect), - Handler: gui.wrappedHandler(gui.handleToggleSelectRange), + Handler: gui.handleToggleSelectRange, Description: gui.Tr.ToggleDragSelect, }, // Alias 'V' -> 'v' @@ -1342,14 +1342,14 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { ViewName: "main", Contexts: []string{MAIN_PATCH_BUILDING_CONTEXT_KEY, MAIN_STAGING_CONTEXT_KEY}, Key: gui.getKey(config.Main.ToggleDragSelectAlt), - Handler: gui.wrappedHandler(gui.handleToggleSelectRange), + Handler: gui.handleToggleSelectRange, Description: gui.Tr.ToggleDragSelect, }, { ViewName: "main", Contexts: []string{MAIN_PATCH_BUILDING_CONTEXT_KEY, MAIN_STAGING_CONTEXT_KEY}, Key: gui.getKey(config.Main.ToggleSelectHunk), - Handler: gui.wrappedHandler(gui.handleToggleSelectHunk), + Handler: gui.handleToggleSelectHunk, Description: gui.Tr.ToggleSelectHunk, }, { @@ -1371,20 +1371,20 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { Contexts: []string{MAIN_PATCH_BUILDING_CONTEXT_KEY, MAIN_STAGING_CONTEXT_KEY}, Key: gocui.MouseWheelUp, Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.scrollUpMain), + Handler: gui.scrollUpMain, }, { ViewName: "main", Contexts: []string{MAIN_PATCH_BUILDING_CONTEXT_KEY, MAIN_STAGING_CONTEXT_KEY}, Key: gocui.MouseWheelDown, Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.scrollDownMain), + Handler: gui.scrollDownMain, }, { ViewName: "main", Contexts: []string{MAIN_STAGING_CONTEXT_KEY}, Key: gui.getKey(config.Files.CommitChanges), - Handler: gui.wrappedHandler(gui.handleCommitPress), + Handler: gui.handleCommitPress, Description: gui.Tr.CommitChanges, }, { @@ -1398,56 +1398,56 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { ViewName: "main", Contexts: []string{MAIN_STAGING_CONTEXT_KEY}, Key: gui.getKey(config.Files.CommitChangesWithEditor), - Handler: gui.wrappedHandler(gui.handleCommitEditorPress), + Handler: gui.handleCommitEditorPress, Description: gui.Tr.CommitChangesWithEditor, }, { ViewName: "main", Contexts: []string{MAIN_MERGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.Return), - Handler: gui.wrappedHandler(gui.handleEscapeMerge), + Handler: gui.handleEscapeMerge, Description: gui.Tr.ReturnToFilesPanel, }, { ViewName: "main", Contexts: []string{MAIN_MERGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.Select), - Handler: gui.wrappedHandler(gui.handlePickHunk), + Handler: gui.handlePickHunk, Description: gui.Tr.PickHunk, }, { ViewName: "main", Contexts: []string{MAIN_MERGING_CONTEXT_KEY}, Key: gui.getKey(config.Main.PickBothHunks), - Handler: gui.wrappedHandler(gui.handlePickBothHunks), + Handler: gui.handlePickBothHunks, Description: gui.Tr.PickBothHunks, }, { ViewName: "main", Contexts: []string{MAIN_MERGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.PrevBlock), - Handler: gui.wrappedHandler(gui.handleSelectPrevConflict), + Handler: gui.handleSelectPrevConflict, Description: gui.Tr.PrevConflict, }, { ViewName: "main", Contexts: []string{MAIN_MERGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.NextBlock), - Handler: gui.wrappedHandler(gui.handleSelectNextConflict), + Handler: gui.handleSelectNextConflict, Description: gui.Tr.NextConflict, }, { ViewName: "main", Contexts: []string{MAIN_MERGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.PrevItem), - Handler: gui.wrappedHandler(gui.handleSelectTop), + Handler: gui.handleSelectTop, Description: gui.Tr.SelectTop, }, { ViewName: "main", Contexts: []string{MAIN_MERGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.NextItem), - Handler: gui.wrappedHandler(gui.handleSelectBottom), + Handler: gui.handleSelectBottom, Description: gui.Tr.SelectBottom, }, { @@ -1455,48 +1455,48 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { Contexts: []string{MAIN_MERGING_CONTEXT_KEY}, Key: gocui.MouseWheelUp, Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.handleSelectTop), + Handler: gui.handleSelectTop, }, { ViewName: "main", Contexts: []string{MAIN_MERGING_CONTEXT_KEY}, Key: gocui.MouseWheelDown, Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.handleSelectBottom), + Handler: gui.handleSelectBottom, }, { ViewName: "main", Contexts: []string{MAIN_MERGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.PrevBlockAlt), Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.handleSelectPrevConflict), + Handler: gui.handleSelectPrevConflict, }, { ViewName: "main", Contexts: []string{MAIN_MERGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.NextBlockAlt), Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.handleSelectNextConflict), + Handler: gui.handleSelectNextConflict, }, { ViewName: "main", Contexts: []string{MAIN_MERGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.PrevItemAlt), Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.handleSelectTop), + Handler: gui.handleSelectTop, }, { ViewName: "main", Contexts: []string{MAIN_MERGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.NextItemAlt), Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.handleSelectBottom), + Handler: gui.handleSelectBottom, }, { ViewName: "main", Contexts: []string{MAIN_MERGING_CONTEXT_KEY}, Key: gui.getKey(config.Universal.Undo), - Handler: gui.wrappedHandler(gui.handlePopFileSnapshot), + Handler: gui.handlePopFileSnapshot, Description: gui.Tr.LcUndo, }, { @@ -1504,7 +1504,7 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { Contexts: []string{REMOTES_CONTEXT_KEY}, Key: gui.getKey(config.Universal.GoInto), Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.handleRemoteEnter), + Handler: gui.handleRemoteEnter, }, { ViewName: "branches", @@ -1532,14 +1532,14 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { Contexts: []string{REMOTE_BRANCHES_CONTEXT_KEY}, Key: gui.getKey(config.Universal.Select), // gonna use the exact same handler as the 'n' keybinding because everybody wants this to happen when they checkout a remote branch - Handler: gui.wrappedHandler(gui.handleNewBranchOffCurrentItem), + Handler: gui.handleNewBranchOffCurrentItem, Description: gui.Tr.LcCheckout, }, { ViewName: "branches", Contexts: []string{REMOTE_BRANCHES_CONTEXT_KEY}, Key: gui.getKey(config.Universal.New), - Handler: gui.wrappedHandler(gui.handleNewBranchOffCurrentItem), + Handler: gui.handleNewBranchOffCurrentItem, Description: gui.Tr.LcNewBranch, }, { @@ -1616,25 +1616,25 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { ViewName: "menu", Key: gui.getKey(config.Universal.Select), Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.onMenuPress), + Handler: gui.onMenuPress, }, { ViewName: "menu", Key: gui.getKey(config.Universal.Confirm), Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.onMenuPress), + Handler: gui.onMenuPress, }, { ViewName: "menu", Key: gui.getKey(config.Universal.ConfirmAlt1), Modifier: gocui.ModNone, - Handler: gui.wrappedHandler(gui.onMenuPress), + Handler: gui.onMenuPress, }, { ViewName: "files", Contexts: []string{SUBMODULES_CONTEXT_KEY}, Key: gui.getKey(config.Universal.CopyToClipboard), - Handler: gui.wrappedHandler(gui.handleCopySelectedSideContextItemToClipboard), + Handler: gui.handleCopySelectedSideContextItemToClipboard, Description: gui.Tr.LcCopySubmoduleNameToClipboard, }, { @@ -1663,7 +1663,7 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { ViewName: "files", Contexts: []string{SUBMODULES_CONTEXT_KEY}, Key: gui.getKey(config.Universal.New), - Handler: gui.wrappedHandler(gui.handleAddSubmodule), + Handler: gui.handleAddSubmodule, Description: gui.Tr.LcAddSubmodule, }, { @@ -1684,7 +1684,7 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { ViewName: "files", Contexts: []string{SUBMODULES_CONTEXT_KEY}, Key: gui.getKey(config.Submodules.BulkMenu), - Handler: gui.wrappedHandler(gui.handleBulkSubmoduleActionsMenu), + Handler: gui.handleBulkSubmoduleActionsMenu, Description: gui.Tr.LcViewBulkSubmoduleOptions, OpensMenu: true, }, @@ -1692,12 +1692,12 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { for _, viewName := range []string{"status", "branches", "files", "commits", "commitFiles", "stash", "menu"} { bindings = append(bindings, []*Binding{ - {ViewName: viewName, Key: gui.getKey(config.Universal.PrevBlock), Modifier: gocui.ModNone, Handler: gui.wrappedHandler(gui.previousSideWindow)}, - {ViewName: viewName, Key: gui.getKey(config.Universal.NextBlock), Modifier: gocui.ModNone, Handler: gui.wrappedHandler(gui.nextSideWindow)}, - {ViewName: viewName, Key: gui.getKey(config.Universal.PrevBlockAlt), Modifier: gocui.ModNone, Handler: gui.wrappedHandler(gui.previousSideWindow)}, - {ViewName: viewName, Key: gui.getKey(config.Universal.NextBlockAlt), Modifier: gocui.ModNone, Handler: gui.wrappedHandler(gui.nextSideWindow)}, - {ViewName: viewName, Key: gocui.KeyBacktab, Modifier: gocui.ModNone, Handler: gui.wrappedHandler(gui.previousSideWindow)}, - {ViewName: viewName, Key: gocui.KeyTab, Modifier: gocui.ModNone, Handler: gui.wrappedHandler(gui.nextSideWindow)}, + {ViewName: viewName, Key: gui.getKey(config.Universal.PrevBlock), Modifier: gocui.ModNone, Handler: gui.previousSideWindow}, + {ViewName: viewName, Key: gui.getKey(config.Universal.NextBlock), Modifier: gocui.ModNone, Handler: gui.nextSideWindow}, + {ViewName: viewName, Key: gui.getKey(config.Universal.PrevBlockAlt), Modifier: gocui.ModNone, Handler: gui.previousSideWindow}, + {ViewName: viewName, Key: gui.getKey(config.Universal.NextBlockAlt), Modifier: gocui.ModNone, Handler: gui.nextSideWindow}, + {ViewName: viewName, Key: gocui.KeyBacktab, Modifier: gocui.ModNone, Handler: gui.previousSideWindow}, + {ViewName: viewName, Key: gocui.KeyTab, Modifier: gocui.ModNone, Handler: gui.nextSideWindow}, }...) } @@ -1736,7 +1736,7 @@ func (gui *Gui) keybindings() error { bindings = append(bindings, gui.GetInitialKeybindings()...) for _, binding := range bindings { - if err := gui.g.SetKeybinding(binding.ViewName, binding.Contexts, binding.Key, binding.Modifier, binding.Handler); err != nil { + if err := gui.g.SetKeybinding(binding.ViewName, binding.Contexts, binding.Key, binding.Modifier, gui.wrappedHandler(binding.Handler)); err != nil { return err } } diff --git a/pkg/gui/line_by_line_panel.go b/pkg/gui/line_by_line_panel.go index d92e099bb..fd06d0f14 100644 --- a/pkg/gui/line_by_line_panel.go +++ b/pkg/gui/line_by_line_panel.go @@ -178,13 +178,13 @@ func (gui *Gui) LBLSelectLine(newSelectedLineIdx int, state *lBlPanelState) erro return gui.focusSelection(false, state) } -func (gui *Gui) handleLBLMouseDown(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleLBLMouseDown() error { return gui.withLBLActiveCheck(func(state *lBlPanelState) error { if gui.popupPanelFocused() { return nil } - newSelectedLineIdx := v.SelectedLineIdx() + newSelectedLineIdx := gui.getMainView().SelectedLineIdx() state.FirstLineIdx = newSelectedLineIdx state.LastLineIdx = newSelectedLineIdx @@ -194,13 +194,37 @@ func (gui *Gui) handleLBLMouseDown(g *gocui.Gui, v *gocui.View) error { }) } -func (gui *Gui) handleMouseDrag(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleMouseDrag() error { return gui.withLBLActiveCheck(func(state *lBlPanelState) error { if gui.popupPanelFocused() { return nil } - return gui.LBLSelectLine(v.SelectedLineIdx(), state) + return gui.LBLSelectLine(gui.getMainView().SelectedLineIdx(), state) + }) +} + +func (gui *Gui) handleMouseScrollUp() error { + return gui.withLBLActiveCheck(func(state *lBlPanelState) error { + if gui.popupPanelFocused() { + return nil + } + + state.SelectMode = LINE + + return gui.LBLCycleLine(-1, state) + }) +} + +func (gui *Gui) handleMouseScrollDown() error { + return gui.withLBLActiveCheck(func(state *lBlPanelState) error { + if gui.popupPanelFocused() { + return nil + } + + state.SelectMode = LINE + + return gui.LBLCycleLine(1, state) }) } diff --git a/pkg/gui/list_context.go b/pkg/gui/list_context.go index ac345dd97..03089acfa 100644 --- a/pkg/gui/list_context.go +++ b/pkg/gui/list_context.go @@ -150,11 +150,11 @@ func (lc *ListContext) HandleRender() error { return lc.OnRender() } -func (lc *ListContext) handlePrevLine(g *gocui.Gui, v *gocui.View) error { +func (lc *ListContext) handlePrevLine() error { return lc.handleLineChange(-1) } -func (lc *ListContext) handleNextLine(g *gocui.Gui, v *gocui.View) error { +func (lc *ListContext) handleNextLine() error { return lc.handleLineChange(1) } @@ -188,7 +188,7 @@ func (lc *ListContext) handleLineChange(change int) error { return lc.HandleFocus() } -func (lc *ListContext) handleNextPage(g *gocui.Gui, v *gocui.View) error { +func (lc *ListContext) handleNextPage() error { view, err := lc.Gui.g.View(lc.ViewName) if err != nil { return nil @@ -198,15 +198,15 @@ func (lc *ListContext) handleNextPage(g *gocui.Gui, v *gocui.View) error { return lc.handleLineChange(delta) } -func (lc *ListContext) handleGotoTop(g *gocui.Gui, v *gocui.View) error { +func (lc *ListContext) handleGotoTop() error { return lc.handleLineChange(-lc.GetItemsLength()) } -func (lc *ListContext) handleGotoBottom(g *gocui.Gui, v *gocui.View) error { +func (lc *ListContext) handleGotoBottom() error { return lc.handleLineChange(lc.GetItemsLength()) } -func (lc *ListContext) handlePrevPage(g *gocui.Gui, v *gocui.View) error { +func (lc *ListContext) handlePrevPage() error { view, err := lc.Gui.g.View(lc.ViewName) if err != nil { return nil @@ -217,13 +217,18 @@ func (lc *ListContext) handlePrevPage(g *gocui.Gui, v *gocui.View) error { return lc.handleLineChange(-delta) } -func (lc *ListContext) handleClick(g *gocui.Gui, v *gocui.View) error { +func (lc *ListContext) handleClick() error { if !lc.Gui.isPopupPanel(lc.ViewName) && lc.Gui.popupPanelFocused() { return nil } + view, err := lc.Gui.g.View(lc.ViewName) + if err != nil { + return nil + } + prevSelectedLineIdx := lc.GetPanelState().GetSelectedLineIdx() - newSelectedLineIdx := v.SelectedLineIdx() + newSelectedLineIdx := view.SelectedLineIdx() // we need to focus the view if err := lc.Gui.pushContext(lc); err != nil { @@ -573,7 +578,7 @@ func (gui *Gui) getListContextKeyBindings() []*Binding { ViewName: listContext.ViewName, Contexts: []string{listContext.ContextKey}, Key: gui.getKey(keybindingConfig.Universal.StartSearch), - Handler: openSearchHandler, + Handler: func() error { return openSearchHandler(listContext.ViewName) }, Description: gui.Tr.LcStartSearch, Tag: "navigation", }, diff --git a/pkg/gui/menu_panel.go b/pkg/gui/menu_panel.go index e7839b0a0..143fd7bf1 100644 --- a/pkg/gui/menu_panel.go +++ b/pkg/gui/menu_panel.go @@ -42,8 +42,8 @@ func (gui *Gui) getMenuOptions() map[string]string { } } -func (gui *Gui) handleMenuClose(g *gocui.Gui, v *gocui.View) error { - _ = g.DeleteView("menu") +func (gui *Gui) handleMenuClose() error { + _ = gui.g.DeleteView("menu") return gui.returnFromContext() } diff --git a/pkg/gui/options_menu_panel.go b/pkg/gui/options_menu_panel.go index 0cf3367cb..71e0e6685 100644 --- a/pkg/gui/options_menu_panel.go +++ b/pkg/gui/options_menu_panel.go @@ -45,8 +45,13 @@ func (gui *Gui) displayDescription(binding *Binding) string { return commandColor.Sprint(binding.Description) } -func (gui *Gui) handleCreateOptionsMenu(g *gocui.Gui, v *gocui.View) error { - bindings := gui.getBindings(v) +func (gui *Gui) handleCreateOptionsMenu() error { + view := gui.g.CurrentView() + if view == nil { + return nil + } + + bindings := gui.getBindings(view) menuItems := make([]*menuItem, len(bindings)) @@ -58,10 +63,10 @@ func (gui *Gui) handleCreateOptionsMenu(g *gocui.Gui, v *gocui.View) error { if binding.Key == nil { return nil } - if err := gui.handleMenuClose(g, v); err != nil { + if err := gui.handleMenuClose(); err != nil { return err } - return binding.Handler(g, v) + return binding.Handler() }, } } diff --git a/pkg/gui/patch_options_panel.go b/pkg/gui/patch_options_panel.go index 186b40c06..a340efc2a 100644 --- a/pkg/gui/patch_options_panel.go +++ b/pkg/gui/patch_options_panel.go @@ -3,11 +3,10 @@ package gui import ( "fmt" - "github.com/jesseduffield/gocui" "github.com/jesseduffield/lazygit/pkg/commands" ) -func (gui *Gui) handleCreatePatchOptionsMenu(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCreatePatchOptionsMenu() error { if !gui.GitCommand.PatchManager.Active() { return gui.createErrorPanel(gui.Tr.NoPatchError) } diff --git a/pkg/gui/quitting.go b/pkg/gui/quitting.go index 36c3e34a6..bd2f09f66 100644 --- a/pkg/gui/quitting.go +++ b/pkg/gui/quitting.go @@ -24,7 +24,7 @@ func (gui *Gui) recordCurrentDirectory() error { return gui.OSCommand.CreateFileWithContent(os.Getenv("LAZYGIT_NEW_DIR_FILE"), dirName) } -func (gui *Gui) handleQuitWithoutChangingDirectory(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleQuitWithoutChangingDirectory() error { gui.State.RetainOriginalDir = true return gui.quit() } @@ -34,7 +34,7 @@ func (gui *Gui) handleQuit() error { return gui.quit() } -func (gui *Gui) handleTopLevelReturn(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleTopLevelReturn() error { currentContext := gui.currentContext() parentContext, hasParent := currentContext.GetParentContext() diff --git a/pkg/gui/reflog_panel.go b/pkg/gui/reflog_panel.go index b089ac526..89293f6b4 100644 --- a/pkg/gui/reflog_panel.go +++ b/pkg/gui/reflog_panel.go @@ -1,7 +1,6 @@ package gui import ( - "github.com/jesseduffield/gocui" "github.com/jesseduffield/lazygit/pkg/commands/models" ) @@ -83,7 +82,7 @@ func (gui *Gui) refreshReflogCommits() error { return gui.postRefreshUpdate(gui.Contexts.ReflogCommits.Context) } -func (gui *Gui) handleCheckoutReflogCommit(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCheckoutReflogCommit() error { commit := gui.getSelectedReflogCommit() if commit == nil { return nil @@ -105,7 +104,7 @@ func (gui *Gui) handleCheckoutReflogCommit(g *gocui.Gui, v *gocui.View) error { return nil } -func (gui *Gui) handleCreateReflogResetMenu(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCreateReflogResetMenu() error { commit := gui.getSelectedReflogCommit() return gui.createResetMenu(commit.Sha) diff --git a/pkg/gui/remote_branches_panel.go b/pkg/gui/remote_branches_panel.go index a2363b491..2c0aa074a 100644 --- a/pkg/gui/remote_branches_panel.go +++ b/pkg/gui/remote_branches_panel.go @@ -3,7 +3,6 @@ package gui import ( "fmt" - "github.com/jesseduffield/gocui" "github.com/jesseduffield/lazygit/pkg/commands/models" "github.com/jesseduffield/lazygit/pkg/utils" ) @@ -39,16 +38,16 @@ func (gui *Gui) handleRemoteBranchSelect() error { }) } -func (gui *Gui) handleRemoteBranchesEscape(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleRemoteBranchesEscape() error { return gui.pushContext(gui.Contexts.Remotes.Context) } -func (gui *Gui) handleMergeRemoteBranch(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleMergeRemoteBranch() error { selectedBranchName := gui.getSelectedRemoteBranch().FullName() return gui.mergeBranchIntoCheckedOutBranch(selectedBranchName) } -func (gui *Gui) handleDeleteRemoteBranch(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleDeleteRemoteBranch() error { remoteBranch := gui.getSelectedRemoteBranch() if remoteBranch == nil { return nil @@ -69,12 +68,12 @@ func (gui *Gui) handleDeleteRemoteBranch(g *gocui.Gui, v *gocui.View) error { }) } -func (gui *Gui) handleRebaseOntoRemoteBranch(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleRebaseOntoRemoteBranch() error { selectedBranchName := gui.getSelectedRemoteBranch().FullName() return gui.handleRebaseOntoBranch(selectedBranchName) } -func (gui *Gui) handleSetBranchUpstream(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleSetBranchUpstream() error { selectedBranch := gui.getSelectedRemoteBranch() checkedOutBranch := gui.getCheckedOutBranch() @@ -99,7 +98,7 @@ func (gui *Gui) handleSetBranchUpstream(g *gocui.Gui, v *gocui.View) error { }) } -func (gui *Gui) handleCreateResetToRemoteBranchMenu(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCreateResetToRemoteBranchMenu() error { selectedBranch := gui.getSelectedRemoteBranch() if selectedBranch == nil { return nil diff --git a/pkg/gui/remotes_panel.go b/pkg/gui/remotes_panel.go index d99bcbb08..3c18aa212 100644 --- a/pkg/gui/remotes_panel.go +++ b/pkg/gui/remotes_panel.go @@ -5,7 +5,6 @@ import ( "strings" "github.com/fatih/color" - "github.com/jesseduffield/gocui" "github.com/jesseduffield/lazygit/pkg/commands/models" "github.com/jesseduffield/lazygit/pkg/utils" ) @@ -84,7 +83,7 @@ func (gui *Gui) handleRemoteEnter() error { return gui.pushContext(gui.Contexts.Remotes.Branches.Context) } -func (gui *Gui) handleAddRemote(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleAddRemote() error { return gui.prompt(promptOpts{ title: gui.Tr.LcNewRemoteName, handleConfirm: func(remoteName string) error { @@ -102,7 +101,7 @@ func (gui *Gui) handleAddRemote(g *gocui.Gui, v *gocui.View) error { } -func (gui *Gui) handleRemoveRemote(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleRemoveRemote() error { remote := gui.getSelectedRemote() if remote == nil { return nil @@ -121,7 +120,7 @@ func (gui *Gui) handleRemoveRemote(g *gocui.Gui, v *gocui.View) error { }) } -func (gui *Gui) handleEditRemote(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleEditRemote() error { remote := gui.getSelectedRemote() if remote == nil { return nil @@ -171,7 +170,7 @@ func (gui *Gui) handleEditRemote(g *gocui.Gui, v *gocui.View) error { }) } -func (gui *Gui) handleFetchRemote(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleFetchRemote() error { remote := gui.getSelectedRemote() if remote == nil { return nil diff --git a/pkg/gui/searching.go b/pkg/gui/searching.go index cc21acaf2..fdb61a70f 100644 --- a/pkg/gui/searching.go +++ b/pkg/gui/searching.go @@ -3,14 +3,18 @@ package gui import ( "fmt" - "github.com/jesseduffield/gocui" "github.com/jesseduffield/lazygit/pkg/theme" "github.com/jesseduffield/lazygit/pkg/utils" ) -func (gui *Gui) handleOpenSearch(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleOpenSearch(viewName string) error { + view, err := gui.g.View(viewName) + if err != nil { + return nil + } + gui.State.Searching.isSearching = true - gui.State.Searching.view = v + gui.State.Searching.view = view gui.renderString("search", "") @@ -21,7 +25,7 @@ func (gui *Gui) handleOpenSearch(g *gocui.Gui, v *gocui.View) error { return nil } -func (gui *Gui) handleSearch(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleSearch() error { gui.State.Searching.searchString = gui.getSearchView().Buffer() if err := gui.returnFromContext(); err != nil { return err @@ -92,7 +96,7 @@ func (gui *Gui) onSearchEscape() error { return nil } -func (gui *Gui) handleSearchEscape(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleSearchEscape() error { if err := gui.onSearchEscape(); err != nil { return err } diff --git a/pkg/gui/side_window.go b/pkg/gui/side_window.go index fc5842dea..be55942cd 100644 --- a/pkg/gui/side_window.go +++ b/pkg/gui/side_window.go @@ -1,7 +1,5 @@ package gui -import "github.com/jesseduffield/gocui" - func (gui *Gui) nextSideWindow() error { windows := gui.getCyclableWindows() currentWindow := gui.currentWindow() @@ -54,8 +52,8 @@ func (gui *Gui) previousSideWindow() error { return gui.pushContextWithView(viewName) } -func (gui *Gui) goToSideWindow(sideViewName string) func(g *gocui.Gui, v *gocui.View) error { - return func(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) goToSideWindow(sideViewName string) func() error { + return func() error { return gui.pushContextWithView(sideViewName) } } diff --git a/pkg/gui/staging_panel.go b/pkg/gui/staging_panel.go index 2aaa1e82e..d021525dc 100644 --- a/pkg/gui/staging_panel.go +++ b/pkg/gui/staging_panel.go @@ -3,7 +3,6 @@ package gui import ( "strings" - "github.com/jesseduffield/gocui" "github.com/jesseduffield/lazygit/pkg/commands/patch" ) @@ -60,11 +59,11 @@ func (gui *Gui) refreshStagingPanel(forceSecondaryFocused bool, selectedLineIdx return nil } -func (gui *Gui) handleTogglePanelClick(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleTogglePanelClick() error { return gui.withLBLActiveCheck(func(state *lBlPanelState) error { state.SecondaryFocused = !state.SecondaryFocused - return gui.refreshStagingPanel(false, v.SelectedLineIdx(), state) + return gui.refreshStagingPanel(false, gui.getSecondaryView().SelectedLineIdx(), state) }) } diff --git a/pkg/gui/stash_panel.go b/pkg/gui/stash_panel.go index d60ffae2a..deaf5790e 100644 --- a/pkg/gui/stash_panel.go +++ b/pkg/gui/stash_panel.go @@ -1,7 +1,6 @@ package gui import ( - "github.com/jesseduffield/gocui" "github.com/jesseduffield/lazygit/pkg/commands/models" "github.com/jesseduffield/lazygit/pkg/utils" ) @@ -45,7 +44,7 @@ func (gui *Gui) refreshStashEntries() error { // specific functions -func (gui *Gui) handleStashApply(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleStashApply() error { skipStashWarning := gui.Config.GetUserConfig().Gui.SkipStashWarning apply := func() error { @@ -65,7 +64,7 @@ func (gui *Gui) handleStashApply(g *gocui.Gui, v *gocui.View) error { }) } -func (gui *Gui) handleStashPop(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleStashPop() error { skipStashWarning := gui.Config.GetUserConfig().Gui.SkipStashWarning pop := func() error { @@ -85,7 +84,7 @@ func (gui *Gui) handleStashPop(g *gocui.Gui, v *gocui.View) error { }) } -func (gui *Gui) handleStashDrop(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleStashDrop() error { return gui.ask(askOpts{ title: gui.Tr.StashDrop, prompt: gui.Tr.SureDropStashEntry, diff --git a/pkg/gui/status_panel.go b/pkg/gui/status_panel.go index 726db21cc..f1a52f38a 100644 --- a/pkg/gui/status_panel.go +++ b/pkg/gui/status_panel.go @@ -56,12 +56,12 @@ func cursorInSubstring(cx int, prefix string, substring string) bool { return cx >= runeCount(prefix) && cx < runeCount(prefix+substring) } -func (gui *Gui) handleCheckForUpdate(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCheckForUpdate() error { gui.Updater.CheckForNewUpdate(gui.onUserUpdateCheckFinish, true) return gui.createLoaderPanel(gui.Tr.CheckingForUpdates) } -func (gui *Gui) handleStatusClick(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleStatusClick() error { // TODO: move into some abstraction (status is currently not a listViewContext where a lot of this code lives) if gui.popupPanelFocused() { return nil @@ -77,7 +77,7 @@ func (gui *Gui) handleStatusClick(g *gocui.Gui, v *gocui.View) error { return err } - cx, _ := v.Cursor() + cx, _ := gui.getStatusView().Cursor() upstreamStatus := fmt.Sprintf("ā†‘%sā†“%s", currentBranch.Pushables, currentBranch.Pullables) repoName := utils.GetCurrentRepoName() switch gui.GitCommand.WorkingTreeState() { @@ -126,11 +126,11 @@ func (gui *Gui) handleStatusSelect() error { }) } -func (gui *Gui) handleOpenConfig(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleOpenConfig() error { return gui.openFile(gui.Config.GetUserConfigPath()) } -func (gui *Gui) handleEditConfig(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleEditConfig() error { filename := gui.Config.GetUserConfigPath() return gui.editFile(filename) } diff --git a/pkg/gui/sub_commits_panel.go b/pkg/gui/sub_commits_panel.go index a86022d38..b133a250b 100644 --- a/pkg/gui/sub_commits_panel.go +++ b/pkg/gui/sub_commits_panel.go @@ -1,7 +1,6 @@ package gui import ( - "github.com/jesseduffield/gocui" "github.com/jesseduffield/lazygit/pkg/commands" "github.com/jesseduffield/lazygit/pkg/commands/models" ) @@ -39,7 +38,7 @@ func (gui *Gui) handleSubCommitSelect() error { }) } -func (gui *Gui) handleCheckoutSubCommit(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCheckoutSubCommit() error { commit := gui.getSelectedSubCommit() if commit == nil { return nil diff --git a/pkg/gui/submodules_panel.go b/pkg/gui/submodules_panel.go index 3bbfeb351..8c1bcf76a 100644 --- a/pkg/gui/submodules_panel.go +++ b/pkg/gui/submodules_panel.go @@ -7,7 +7,6 @@ import ( "strings" "github.com/fatih/color" - "github.com/jesseduffield/gocui" "github.com/jesseduffield/lazygit/pkg/commands/models" "github.com/jesseduffield/lazygit/pkg/utils" ) @@ -179,17 +178,15 @@ func (gui *Gui) handleSubmoduleInit(submodule *models.SubmoduleConfig) error { }) } -func (gui *Gui) forSubmodule(callback func(*models.SubmoduleConfig) error) func(g *gocui.Gui, v *gocui.View) error { - return gui.wrappedHandler( - func() error { - submodule := gui.getSelectedSubmodule() - if submodule == nil { - return nil - } +func (gui *Gui) forSubmodule(callback func(*models.SubmoduleConfig) error) func() error { + return func() error { + submodule := gui.getSelectedSubmodule() + if submodule == nil { + return nil + } - return callback(submodule) - }, - ) + return callback(submodule) + } } func (gui *Gui) handleResetRemoveSubmodule(submodule *models.SubmoduleConfig) error { diff --git a/pkg/gui/tags_panel.go b/pkg/gui/tags_panel.go index 51ca9298c..0ea86ad2b 100644 --- a/pkg/gui/tags_panel.go +++ b/pkg/gui/tags_panel.go @@ -1,7 +1,6 @@ package gui import ( - "github.com/jesseduffield/gocui" "github.com/jesseduffield/lazygit/pkg/commands/models" "github.com/jesseduffield/lazygit/pkg/utils" ) @@ -48,7 +47,7 @@ func (gui *Gui) refreshTags() error { return gui.postRefreshUpdate(gui.Contexts.Tags.Context) } -func (gui *Gui) handleCheckoutTag(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCheckoutTag() error { tag := gui.getSelectedTag() if tag == nil { return nil @@ -59,7 +58,7 @@ func (gui *Gui) handleCheckoutTag(g *gocui.Gui, v *gocui.View) error { return gui.pushContext(gui.Contexts.Branches.Context) } -func (gui *Gui) handleDeleteTag(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleDeleteTag() error { tag := gui.getSelectedTag() if tag == nil { return nil @@ -84,7 +83,7 @@ func (gui *Gui) handleDeleteTag(g *gocui.Gui, v *gocui.View) error { }) } -func (gui *Gui) handlePushTag(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handlePushTag() error { tag := gui.getSelectedTag() if tag == nil { return nil @@ -111,7 +110,7 @@ func (gui *Gui) handlePushTag(g *gocui.Gui, v *gocui.View) error { }) } -func (gui *Gui) handleCreateTag(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCreateTag() error { return gui.prompt(promptOpts{ title: gui.Tr.CreateTagTitle, handleConfirm: func(tagName string) error { @@ -137,7 +136,7 @@ func (gui *Gui) handleCreateTag(g *gocui.Gui, v *gocui.View) error { }) } -func (gui *Gui) handleCreateResetToTagMenu(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCreateResetToTagMenu() error { tag := gui.getSelectedTag() if tag == nil { return nil diff --git a/pkg/gui/undoing.go b/pkg/gui/undoing.go index 6379937c7..f055ef11a 100644 --- a/pkg/gui/undoing.go +++ b/pkg/gui/undoing.go @@ -1,7 +1,6 @@ package gui import ( - "github.com/jesseduffield/gocui" "github.com/jesseduffield/lazygit/pkg/commands" "github.com/jesseduffield/lazygit/pkg/commands/oscommands" "github.com/jesseduffield/lazygit/pkg/utils" @@ -86,7 +85,7 @@ func (gui *Gui) parseReflogForActions(onUserAction func(counter int, action refl return nil } -func (gui *Gui) reflogUndo(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) reflogUndo() error { undoEnvVars := []string{"GIT_REFLOG_ACTION=[lazygit undo]"} undoingStatus := gui.Tr.UndoingStatus @@ -117,7 +116,7 @@ func (gui *Gui) reflogUndo(g *gocui.Gui, v *gocui.View) error { }) } -func (gui *Gui) reflogRedo(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) reflogRedo() error { redoEnvVars := []string{"GIT_REFLOG_ACTION=[lazygit redo]"} redoingStatus := gui.Tr.RedoingStatus diff --git a/pkg/gui/view_helpers.go b/pkg/gui/view_helpers.go index 522825986..22466cab9 100644 --- a/pkg/gui/view_helpers.go +++ b/pkg/gui/view_helpers.go @@ -251,6 +251,16 @@ func (gui *Gui) getCommitFilesView() *gocui.View { return v } +func (gui *Gui) getCommitsView() *gocui.View { + v, _ := gui.g.View("commits") + return v +} + +func (gui *Gui) getCredentialsView() *gocui.View { + v, _ := gui.g.View("commits") + return v +} + func (gui *Gui) getCommitMessageView() *gocui.View { v, _ := gui.g.View("commitMessage") return v @@ -308,6 +318,11 @@ func (gui *Gui) getConfirmationView() *gocui.View { return v } +func (gui *Gui) getInformationView() *gocui.View { + v, _ := gui.g.View("confirmation") + return v +} + func (gui *Gui) trimmedContent(v *gocui.View) string { return strings.TrimSpace(v.Buffer()) } @@ -403,15 +418,6 @@ func (gui *Gui) popupPanelFocused() bool { return gui.isPopupPanel(gui.currentViewName()) } -// often gocui wants functions in the form `func(g *gocui.Gui, v *gocui.View) error` -// but sometimes we just have a function that returns an error, so this is a -// convenience wrapper to give gocui what it wants. -func (gui *Gui) wrappedHandler(f func() error) func(g *gocui.Gui, v *gocui.View) error { - return func(g *gocui.Gui, v *gocui.View) error { - return f() - } -} - // secondaryViewFocused tells us whether it appears that the secondary view is focused. The view is actually never focused for real: we just swap the main and secondary views and then you're still focused on the main view so that we can give you access to all its keybindings for free. I will probably regret this design decision soon enough. func (gui *Gui) secondaryViewFocused() bool { state := gui.State.Panels.LineByLine @@ -430,14 +436,24 @@ func (gui *Gui) onViewTabClick(viewName string, tabIndex int) error { return gui.pushContext(context) } -func (gui *Gui) handleNextTab(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleNextTab() error { + v := gui.g.CurrentView() + if v != nil { + return nil + } + return gui.onViewTabClick( v.Name(), utils.ModuloWithWrap(v.TabIndex+1, len(v.Tabs)), ) } -func (gui *Gui) handlePrevTab(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handlePrevTab() error { + v := gui.g.CurrentView() + if v != nil { + return nil + } + return gui.onViewTabClick( v.Name(), utils.ModuloWithWrap(v.TabIndex-1, len(v.Tabs)), diff --git a/pkg/gui/workspace_reset_options_panel.go b/pkg/gui/workspace_reset_options_panel.go index e80052c75..1346d2f91 100644 --- a/pkg/gui/workspace_reset_options_panel.go +++ b/pkg/gui/workspace_reset_options_panel.go @@ -4,10 +4,9 @@ import ( "fmt" "github.com/fatih/color" - "github.com/jesseduffield/gocui" ) -func (gui *Gui) handleCreateResetMenu(g *gocui.Gui, v *gocui.View) error { +func (gui *Gui) handleCreateResetMenu() error { red := color.New(color.FgRed) nukeStr := "reset --hard HEAD && git clean -fd"