1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-05-29 23:17:32 +02:00

There's gotta be a better way for initial content

This commit is contained in:
Luka Markušić 2022-04-13 15:21:01 +02:00
parent f83308c8df
commit c4b958e3fd
3 changed files with 18 additions and 8 deletions

View File

@ -123,7 +123,7 @@ func (self *BranchesController) setUpstream(selectedBranch *models.Branch) error
{ {
DisplayStrings: []string{self.c.Tr.LcSetUpstream}, DisplayStrings: []string{self.c.Tr.LcSetUpstream},
OnPress: func() error { OnPress: func() error {
return self.helpers.Upstream.PromptForUpstream(selectedBranch, func(upstream string) error { return self.helpers.Upstream.PromptForUpstreamWithoutInitialContent(selectedBranch, func(upstream string) error {
upstreamRemote, upstreamBranch, err := self.helpers.Upstream.ParseUpstream(upstream) upstreamRemote, upstreamBranch, err := self.helpers.Upstream.ParseUpstream(upstream)
if err != nil { if err != nil {
return self.c.Error(err) return self.c.Error(err)

View File

@ -17,7 +17,8 @@ type UpstreamHelper struct {
type IUpstreamHelper interface { type IUpstreamHelper interface {
ParseUpstream(string) (string, string, error) ParseUpstream(string) (string, string, error)
PromptForUpstream(*models.Branch, func(string) error) error PromptForUpstreamWithInitialContent(*models.Branch, func(string) error) error
PromptForUpstreamWithoutInitialContent(*models.Branch, func(string) error) error
GetSuggestedRemote() string GetSuggestedRemote() string
} }
@ -48,17 +49,26 @@ func (self *UpstreamHelper) ParseUpstream(upstream string) (string, string, erro
return upstreamRemote, upstreamBranch, nil return upstreamRemote, upstreamBranch, nil
} }
func (self *UpstreamHelper) PromptForUpstream(currentBranch *models.Branch, onConfirm func(string) error) error { func (self *UpstreamHelper) promptForUpstream(currentBranch *models.Branch, initialContent string, onConfirm func(string) error) error {
suggestedRemote := self.GetSuggestedRemote()
return self.c.Prompt(types.PromptOpts{ return self.c.Prompt(types.PromptOpts{
Title: self.c.Tr.EnterUpstream, Title: self.c.Tr.EnterUpstream,
InitialContent: suggestedRemote + " " + currentBranch.Name, InitialContent: initialContent,
FindSuggestionsFunc: self.getRemoteBranchesSuggestionsFunc(" "), FindSuggestionsFunc: self.getRemoteBranchesSuggestionsFunc(" "),
HandleConfirm: onConfirm, HandleConfirm: onConfirm,
}) })
} }
func (self *UpstreamHelper) PromptForUpstreamWithInitialContent(currentBranch *models.Branch, onConfirm func(string) error) error {
suggestedRemote := self.GetSuggestedRemote()
initialContent := suggestedRemote + " " + currentBranch.Name
return self.promptForUpstream(currentBranch, initialContent, onConfirm)
}
func (self *UpstreamHelper) PromptForUpstreamWithoutInitialContent(currentBranch *models.Branch, onConfirm func(string) error) error {
return self.promptForUpstream(currentBranch, "", onConfirm)
}
func (self *UpstreamHelper) GetSuggestedRemote() string { func (self *UpstreamHelper) GetSuggestedRemote() string {
return getSuggestedRemote(self.model.Remotes) return getSuggestedRemote(self.model.Remotes)
} }

View File

@ -79,7 +79,7 @@ func (self *SyncController) push(currentBranch *models.Branch) error {
if self.git.Config.GetPushToCurrent() { if self.git.Config.GetPushToCurrent() {
return self.pushAux(pushOpts{setUpstream: true}) return self.pushAux(pushOpts{setUpstream: true})
} else { } else {
return self.helpers.Upstream.PromptForUpstream(currentBranch, func(upstream string) error { return self.helpers.Upstream.PromptForUpstreamWithInitialContent(currentBranch, func(upstream string) error {
upstreamRemote, upstreamBranch, err := self.helpers.Upstream.ParseUpstream(upstream) upstreamRemote, upstreamBranch, err := self.helpers.Upstream.ParseUpstream(upstream)
if err != nil { if err != nil {
return self.c.Error(err) return self.c.Error(err)
@ -100,7 +100,7 @@ func (self *SyncController) pull(currentBranch *models.Branch) error {
// if we have no upstream branch we need to set that first // if we have no upstream branch we need to set that first
if !currentBranch.IsTrackingRemote() { if !currentBranch.IsTrackingRemote() {
return self.helpers.Upstream.PromptForUpstream(currentBranch, func(upstream string) error { return self.helpers.Upstream.PromptForUpstreamWithInitialContent(currentBranch, func(upstream string) error {
if err := self.setCurrentBranchUpstream(upstream); err != nil { if err := self.setCurrentBranchUpstream(upstream); err != nil {
return self.c.Error(err) return self.c.Error(err)
} }