summaryrefslogtreecommitdiffstats
path: root/pkg/gui
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2023-07-16 20:38:22 +1000
committerJesse Duffield <jessedduffield@gmail.com>2023-07-30 18:35:22 +1000
commit2e68967e02954a6f4d556fe637db57f7fb5aeec6 (patch)
treeefc53a18c426fe00720cba1337abb4afe4a7bdd6 /pkg/gui
parent71422a85499fdb336d37a60f0c56f236b891e2cd (diff)
Show base ref suggestions when creating worktree
Diffstat (limited to 'pkg/gui')
-rw-r--r--pkg/gui/controllers.go4
-rw-r--r--pkg/gui/controllers/helpers/worktree_helper.go25
2 files changed, 14 insertions, 15 deletions
diff --git a/pkg/gui/controllers.go b/pkg/gui/controllers.go
index 61ab8f738..9d76349c7 100644
--- a/pkg/gui/controllers.go
+++ b/pkg/gui/controllers.go
@@ -21,10 +21,10 @@ func (gui *Gui) resetHelpersAndControllers() {
recordDirectoryHelper := helpers.NewRecordDirectoryHelper(helperCommon)
reposHelper := helpers.NewRecentReposHelper(helperCommon, recordDirectoryHelper, gui.onNewRepo)
refsHelper := helpers.NewRefsHelper(helperCommon)
- worktreeHelper := helpers.NewWorktreeHelper(helperCommon, reposHelper, refsHelper)
+ suggestionsHelper := helpers.NewSuggestionsHelper(helperCommon)
+ worktreeHelper := helpers.NewWorktreeHelper(helperCommon, reposHelper, refsHelper, suggestionsHelper)
rebaseHelper := helpers.NewMergeAndRebaseHelper(helperCommon, refsHelper)
- suggestionsHelper := helpers.NewSuggestionsHelper(helperCommon)
setCommitSummary := gui.getCommitMessageSetTextareaTextFn(func() *gocui.View { return gui.Views.CommitMessage })
setCommitDescription := gui.getCommitMessageSetTextareaTextFn(func() *gocui.View { return gui.Views.CommitDescription })
diff --git a/pkg/gui/controllers/helpers/worktree_helper.go b/pkg/gui/controllers/helpers/worktree_helper.go
index afb49c24f..f6b821780 100644
--- a/pkg/gui/controllers/helpers/worktree_helper.go
+++ b/pkg/gui/controllers/helpers/worktree_helper.go
@@ -22,16 +22,18 @@ type IWorktreeHelper interface {
}
type WorktreeHelper struct {
- c *HelperCommon
- reposHelper *ReposHelper
- refsHelper *RefsHelper
+ c *HelperCommon
+ reposHelper *ReposHelper
+ refsHelper *RefsHelper
+ suggestionsHelper *SuggestionsHelper
}
-func NewWorktreeHelper(c *HelperCommon, reposHelper *ReposHelper, refsHelper *RefsHelper) *WorktreeHelper {
+func NewWorktreeHelper(c *HelperCommon, reposHelper *ReposHelper, refsHelper *RefsHelper, suggestionsHelper *SuggestionsHelper) *WorktreeHelper {
return &WorktreeHelper{
- c: c,
- reposHelper: reposHelper,
- refsHelper: refsHelper,
+ c: c,
+ reposHelper: reposHelper,
+ refsHelper: refsHelper,
+ suggestionsHelper: suggestionsHelper,
}
}
@@ -65,15 +67,14 @@ func (self *WorktreeHelper) IsWorktreePathMissing(w *models.Worktree) bool {
}
func (self *WorktreeHelper) NewWorktree() error {
- // what is the current branch?
branch := self.refsHelper.GetCheckedOutRef()
currentBranchName := branch.RefName()
f := func(detached bool) error {
return self.c.Prompt(types.PromptOpts{
- Title: self.c.Tr.NewWorktreeBranch,
- InitialContent: currentBranchName,
- // TODO: suggestions
+ Title: self.c.Tr.NewWorktreeBranch,
+ InitialContent: currentBranchName,
+ FindSuggestionsFunc: self.suggestionsHelper.GetRefsSuggestionsFunc(),
HandleConfirm: func(base string) error {
canCheckoutBase := base != currentBranchName
return self.NewWorktreeCheckout(base, canCheckoutBase, detached)
@@ -129,7 +130,6 @@ func (self *WorktreeHelper) NewWorktreeCheckout(base string, canCheckoutBase boo
// prompt for the new branch name where a blank means we just check out the branch
return self.c.Prompt(types.PromptOpts{
Title: fmt.Sprintf("New branch name (leave blank to checkout %s)", base),
- // TODO: suggestions
HandleConfirm: func(branchName string) error {
opts.Branch = branchName
@@ -140,7 +140,6 @@ func (self *WorktreeHelper) NewWorktreeCheckout(base string, canCheckoutBase boo
// prompt for the new branch name where a blank means we just check out the branch
return self.c.Prompt(types.PromptOpts{
Title: "New branch name",
- // TODO: suggestions
HandleConfirm: func(branchName string) error {
if branchName == "" {
return self.c.ErrorMsg("Branch name cannot be blank")