mirror of
https://github.com/jesseduffield/lazygit.git
synced 2026-09-14 09:36:24 -04:00
feat: add 'reset to custom ref' option in git reset menu
Adds a new menu item (key 'c') to the git reset menu that prompts the user to enter an arbitrary ref to reset to. The prompt includes autocomplete suggestions from all known refs (local branches, remote branches, tags, HEAD, etc.). After confirming the ref, the standard soft/mixed/hard type selection menu is shown. Closes #1985
This commit is contained in:
parent
e59c1d1cb7
commit
3c17aba500
|
|
@ -26,8 +26,8 @@ func (gui *Gui) resetHelpersAndControllers() {
|
|||
recordDirectoryHelper := helpers.NewRecordDirectoryHelper(helperCommon)
|
||||
reposHelper := helpers.NewRecentReposHelper(helperCommon, recordDirectoryHelper, gui.onSwitchToNewRepo)
|
||||
rebaseHelper := helpers.NewMergeAndRebaseHelper(helperCommon)
|
||||
refsHelper := helpers.NewRefsHelper(helperCommon, rebaseHelper)
|
||||
suggestionsHelper := helpers.NewSuggestionsHelper(helperCommon)
|
||||
refsHelper := helpers.NewRefsHelper(helperCommon, rebaseHelper, suggestionsHelper)
|
||||
worktreeHelper := helpers.NewWorktreeHelper(helperCommon, reposHelper, refsHelper, suggestionsHelper)
|
||||
|
||||
setCommitSummary := gui.getCommitMessageSetTextareaTextFn(func() *gocui.View { return gui.Views.CommitMessage })
|
||||
|
|
|
|||
|
|
@ -18,16 +18,19 @@ import (
|
|||
type RefsHelper struct {
|
||||
c *HelperCommon
|
||||
|
||||
rebaseHelper *MergeAndRebaseHelper
|
||||
rebaseHelper *MergeAndRebaseHelper
|
||||
suggestionsHelper *SuggestionsHelper
|
||||
}
|
||||
|
||||
func NewRefsHelper(
|
||||
c *HelperCommon,
|
||||
rebaseHelper *MergeAndRebaseHelper,
|
||||
suggestionsHelper *SuggestionsHelper,
|
||||
) *RefsHelper {
|
||||
return &RefsHelper{
|
||||
c: c,
|
||||
rebaseHelper: rebaseHelper,
|
||||
c: c,
|
||||
rebaseHelper: rebaseHelper,
|
||||
suggestionsHelper: suggestionsHelper,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -291,6 +294,24 @@ func (self *RefsHelper) CreateGitResetMenu(name string, ref string) error {
|
|||
}
|
||||
})
|
||||
|
||||
menuItems = append(menuItems, &types.MenuItem{
|
||||
LabelColumns: []string{
|
||||
self.c.Tr.ResetToCustomRef,
|
||||
style.FgRed.Sprint("reset --? <ref>"),
|
||||
},
|
||||
OnPress: func() error {
|
||||
self.c.Prompt(types.PromptOpts{
|
||||
Title: self.c.Tr.EnterRefToResetTo,
|
||||
FindSuggestionsFunc: self.suggestionsHelper.GetRefsSuggestionsFunc(),
|
||||
HandleConfirm: func(response string) error {
|
||||
return self.CreateGitResetMenu(response, response)
|
||||
},
|
||||
})
|
||||
return nil
|
||||
},
|
||||
Key: 'c',
|
||||
})
|
||||
|
||||
return self.c.Menu(types.CreateMenuOptions{
|
||||
Title: fmt.Sprintf("%s %s", self.c.Tr.ResetTo, name),
|
||||
Items: menuItems,
|
||||
|
|
|
|||
|
|
@ -501,6 +501,8 @@ type TranslationSet struct {
|
|||
ShellCommand string
|
||||
CommitChangesWithoutHook string
|
||||
ResetTo string
|
||||
ResetToCustomRef string
|
||||
EnterRefToResetTo string
|
||||
ResetSoftTooltip string
|
||||
ResetMixedTooltip string
|
||||
ResetHardTooltip string
|
||||
|
|
@ -1660,6 +1662,8 @@ func EnglishTranslationSet() *TranslationSet {
|
|||
ShellCommand: "Shell command:",
|
||||
CommitChangesWithoutHook: "Commit changes without pre-commit hook",
|
||||
ResetTo: `Reset to`,
|
||||
ResetToCustomRef: "Reset to custom ref",
|
||||
EnterRefToResetTo: "Enter ref to reset to:",
|
||||
PressEnterToReturn: "Press enter to return to lazygit",
|
||||
ViewStashOptions: "View stash options",
|
||||
ViewStashOptionsTooltip: "View stash options (e.g. stash all, stash staged, stash unstaged).",
|
||||
|
|
|
|||
Loading…
Reference in a new issue