mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-08-06 22:33:07 +02:00
Show hint about hunk staging mode being the default now, and how to switch to line mode
It is shown the first time the user enters either staging or patch building.
This commit is contained in:
@ -141,6 +141,9 @@ func Start(buildInfo *BuildInfo, integrationTest integrationTypes.IntegrationTes
|
|||||||
|
|
||||||
if integrationTest != nil {
|
if integrationTest != nil {
|
||||||
integrationTest.SetupConfig(appConfig)
|
integrationTest.SetupConfig(appConfig)
|
||||||
|
// Set this to true so that integration tests don't have to explicitly deal with the hunk
|
||||||
|
// staging hint:
|
||||||
|
appConfig.GetAppState().DidShowHunkStagingHint = true
|
||||||
|
|
||||||
// Preserve the changes that the test setup just made to the config, so
|
// Preserve the changes that the test setup just made to the config, so
|
||||||
// they don't get lost when we reload the config while running the test
|
// they don't get lost when we reload the config while running the test
|
||||||
|
@ -659,6 +659,7 @@ type AppState struct {
|
|||||||
LastUpdateCheck int64
|
LastUpdateCheck int64
|
||||||
RecentRepos []string
|
RecentRepos []string
|
||||||
StartupPopupVersion int
|
StartupPopupVersion int
|
||||||
|
DidShowHunkStagingHint bool
|
||||||
LastVersion string // this is the last version the user was using, for the purpose of showing release notes
|
LastVersion string // this is the last version the user was using, for the purpose of showing release notes
|
||||||
|
|
||||||
// these are for shell commands typed in directly, not for custom commands in the lazygit config.
|
// these are for shell commands typed in directly, not for custom commands in the lazygit config.
|
||||||
|
@ -494,6 +494,8 @@ func (self *CommitFilesController) enterCommitFile(node *filetree.CommitFileNode
|
|||||||
}
|
}
|
||||||
|
|
||||||
self.c.Context().Push(self.c.Contexts().CustomPatchBuilder, opts)
|
self.c.Context().Push(self.c.Contexts().CustomPatchBuilder, opts)
|
||||||
|
self.c.Helpers().PatchBuilding.ShowHunkStagingHint()
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
@ -554,6 +554,8 @@ func (self *FilesController) EnterFile(opts types.OnFocusOpts) error {
|
|||||||
|
|
||||||
context := lo.Ternary(opts.ClickedWindowName == "secondary", self.c.Contexts().StagingSecondary, self.c.Contexts().Staging)
|
context := lo.Ternary(opts.ClickedWindowName == "secondary", self.c.Contexts().StagingSecondary, self.c.Contexts().Staging)
|
||||||
self.c.Context().Push(context, opts)
|
self.c.Context().Push(context, opts)
|
||||||
|
self.c.Helpers().PatchBuilding.ShowHunkStagingHint()
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,8 +2,10 @@ package helpers
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
|
||||||
"github.com/jesseduffield/lazygit/pkg/commands/patch"
|
"github.com/jesseduffield/lazygit/pkg/commands/patch"
|
||||||
|
"github.com/jesseduffield/lazygit/pkg/gui/keybindings"
|
||||||
"github.com/jesseduffield/lazygit/pkg/gui/patch_exploring"
|
"github.com/jesseduffield/lazygit/pkg/gui/patch_exploring"
|
||||||
"github.com/jesseduffield/lazygit/pkg/gui/types"
|
"github.com/jesseduffield/lazygit/pkg/gui/types"
|
||||||
)
|
)
|
||||||
@ -27,6 +29,19 @@ func (self *PatchBuildingHelper) ValidateNormalWorkingTreeState() (bool, error)
|
|||||||
return true, nil
|
return true, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (self *PatchBuildingHelper) ShowHunkStagingHint() {
|
||||||
|
if !self.c.AppState.DidShowHunkStagingHint && self.c.UserConfig().Gui.UseHunkModeInStagingView {
|
||||||
|
self.c.AppState.DidShowHunkStagingHint = true
|
||||||
|
self.c.SaveAppStateAndLogError()
|
||||||
|
|
||||||
|
message := fmt.Sprintf(self.c.Tr.HunkStagingHint,
|
||||||
|
keybindings.Label(self.c.UserConfig().Keybinding.Main.ToggleSelectHunk))
|
||||||
|
self.c.Confirm(types.ConfirmOpts{
|
||||||
|
Prompt: message,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// takes us from the patch building panel back to the commit files panel
|
// takes us from the patch building panel back to the commit files panel
|
||||||
func (self *PatchBuildingHelper) Escape() {
|
func (self *PatchBuildingHelper) Escape() {
|
||||||
self.c.Context().Pop()
|
self.c.Context().Pop()
|
||||||
|
@ -292,6 +292,7 @@ type TranslationSet struct {
|
|||||||
SelectHunk string
|
SelectHunk string
|
||||||
SelectLineByLine string
|
SelectLineByLine string
|
||||||
ToggleSelectHunkTooltip string
|
ToggleSelectHunkTooltip string
|
||||||
|
HunkStagingHint string
|
||||||
ToggleSelectionForPatch string
|
ToggleSelectionForPatch string
|
||||||
EditHunk string
|
EditHunk string
|
||||||
EditHunkTooltip string
|
EditHunkTooltip string
|
||||||
@ -1059,6 +1060,15 @@ const englishNonReloadableConfigWarning = `The following config settings were ch
|
|||||||
|
|
||||||
{{configs}}`
|
{{configs}}`
|
||||||
|
|
||||||
|
const englishHunkStagingHint = `Hunk selection mode is now the default for staging. If you want to stage individual lines, press '%s' to switch to line-by-line mode.
|
||||||
|
|
||||||
|
If you prefer to use line-by-line mode by default (like in earlier lazygit versions), add
|
||||||
|
|
||||||
|
gui:
|
||||||
|
useHunkModeInStagingView: false
|
||||||
|
|
||||||
|
to your lazygit config.`
|
||||||
|
|
||||||
// exporting this so we can use it in tests
|
// exporting this so we can use it in tests
|
||||||
func EnglishTranslationSet() *TranslationSet {
|
func EnglishTranslationSet() *TranslationSet {
|
||||||
return &TranslationSet{
|
return &TranslationSet{
|
||||||
@ -1342,6 +1352,7 @@ func EnglishTranslationSet() *TranslationSet {
|
|||||||
SelectHunk: "Select hunks",
|
SelectHunk: "Select hunks",
|
||||||
SelectLineByLine: "Select line-by-line",
|
SelectLineByLine: "Select line-by-line",
|
||||||
ToggleSelectHunkTooltip: "Toggle line-by-line vs. hunk selection mode.",
|
ToggleSelectHunkTooltip: "Toggle line-by-line vs. hunk selection mode.",
|
||||||
|
HunkStagingHint: englishHunkStagingHint,
|
||||||
ToggleSelectionForPatch: `Toggle lines in patch`,
|
ToggleSelectionForPatch: `Toggle lines in patch`,
|
||||||
EditHunk: `Edit hunk`,
|
EditHunk: `Edit hunk`,
|
||||||
EditHunkTooltip: "Edit selected hunk in external editor.",
|
EditHunkTooltip: "Edit selected hunk in external editor.",
|
||||||
|
Reference in New Issue
Block a user