diff --git a/pkg/gui/layout.go b/pkg/gui/layout.go index 7ab7a88a09d..685e9817ca2 100644 --- a/pkg/gui/layout.go +++ b/pkg/gui/layout.go @@ -2,6 +2,7 @@ package gui import ( "errors" + "strings" "github.com/jesseduffield/gocui" "github.com/jesseduffield/lazygit/pkg/gui/types" @@ -257,6 +258,8 @@ func (gui *Gui) onInitialViewsCreation() error { } } + gui.checkForDeltaNavigateWarning() + gui.c.GetAppState().LastVersion = gui.Config.GetVersion() gui.c.SaveAppStateAndLogError() @@ -274,6 +277,21 @@ func (gui *Gui) onInitialViewsCreation() error { return nil } +func (gui *Gui) checkForDeltaNavigateWarning() { + userConfig := gui.c.UserConfig() + for _, pagerConfig := range userConfig.Git.Pagers { + pagerCmd := string(pagerConfig.Pager) + if strings.Contains(pagerCmd, "delta") && strings.Contains(pagerCmd, "--navigate") { + gui.c.Log.Warn("Configuration warning: 'delta --navigate' detected. This flag is not supported in lazygit as it requires interactive input that lazygit cannot forward to the pager subprocess.") + gui.c.OnUIThread(func() error { + gui.c.Alert(gui.c.Tr.DeltaNavigateWarningTitle, gui.c.Tr.DeltaNavigateWarning) + return nil + }) + return + } + } +} + func (gui *Gui) transientContexts() []types.Context { return lo.Filter(gui.State.Contexts.Flatten(), func(context types.Context, _ int) bool { return context.IsTransient() diff --git a/pkg/i18n/english.go b/pkg/i18n/english.go index 75391a2c1f2..cf145f4826f 100644 --- a/pkg/i18n/english.go +++ b/pkg/i18n/english.go @@ -250,6 +250,8 @@ type TranslationSet struct { IntroPopupMessage string NonReloadableConfigWarningTitle string NonReloadableConfigWarning string + DeltaNavigateWarningTitle string + DeltaNavigateWarning string GitconfigParseErr string EditFile string EditFileTooltip string @@ -1344,6 +1346,8 @@ func EnglishTranslationSet() *TranslationSet { IntroPopupMessage: englishIntroPopupMessage, NonReloadableConfigWarningTitle: "Config changed", NonReloadableConfigWarning: englishNonReloadableConfigWarning, + DeltaNavigateWarningTitle: "Delta --navigate Not Supported", + DeltaNavigateWarning: "You have 'delta --navigate' configured as your pager.\n\nThe --navigate flag requires interactive keyboard input (n/N keys) that lazygit cannot forward to the subprocess.\n\nPlease remove '--navigate' from your pager configuration.", GitconfigParseErr: `Gogit failed to parse your gitconfig file due to the presence of unquoted '\' characters. Removing these should fix the issue.`, EditFile: `Edit file`, EditFileTooltip: "Open file in external editor.",