From 046b0d9daa46f2fa8da9f196dc50a5ae02239675 Mon Sep 17 00:00:00 2001 From: Stefan Haller Date: Sun, 2 Apr 2023 15:01:04 +0200 Subject: Show warning about deprecated edit configs We print this to the terminal after lazygit quits rather than showing it in a panel at startup, so as to not annoy people too much. Hopefully it will still be prominent enough this way. --- pkg/gui/gui.go | 33 +++++++++++++++++++++++++++++++++ pkg/i18n/english.go | 17 +++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/pkg/gui/gui.go b/pkg/gui/gui.go index 69ff10c77..aed1d5430 100644 --- a/pkg/gui/gui.go +++ b/pkg/gui/gui.go @@ -495,6 +495,8 @@ func (gui *Gui) Run(startArgs appTypes.StartArgs) error { return err } + defer gui.checkForDeprecatedEditConfigs() + gui.g = g defer gui.g.Close() @@ -583,6 +585,37 @@ func (gui *Gui) RunAndHandleError(startArgs appTypes.StartArgs) error { }) } +func (gui *Gui) checkForDeprecatedEditConfigs() { + osConfig := &gui.UserConfig.OS + deprecatedConfigs := []struct { + config string + oldName string + newName string + }{ + {osConfig.EditCommand, "EditCommand", "Edit"}, + {osConfig.EditCommandTemplate, "EditCommandTemplate", "Edit,EditAtLine"}, + {osConfig.OpenCommand, "OpenCommand", "Open"}, + {osConfig.OpenLinkCommand, "OpenLinkCommand", "OpenLink"}, + } + deprecatedConfigStrings := []string{} + + for _, dc := range deprecatedConfigs { + if dc.config != "" { + deprecatedConfigStrings = append(deprecatedConfigStrings, fmt.Sprintf(" OS.%s -> OS.%s", dc.oldName, dc.newName)) + } + } + if len(deprecatedConfigStrings) != 0 { + warningMessage := utils.ResolvePlaceholderString( + gui.c.Tr.DeprecatedEditConfigWarning, + map[string]string{ + "configs": strings.Join(deprecatedConfigStrings, "\n"), + }, + ) + + os.Stdout.Write([]byte(warningMessage)) + } +} + // returns whether command exited without error or not func (gui *Gui) runSubprocessWithSuspenseAndRefresh(subprocess oscommands.ICmdObj) error { _, err := gui.runSubprocessWithSuspense(subprocess) diff --git a/pkg/i18n/english.go b/pkg/i18n/english.go index 86ba0451c..e7756d03e 100644 --- a/pkg/i18n/english.go +++ b/pkg/i18n/english.go @@ -155,6 +155,7 @@ type TranslationSet struct { MergeToolTitle string MergeToolPrompt string IntroPopupMessage string + DeprecatedEditConfigWarning string GitconfigParseErr string LcEditFile string LcOpenFile string @@ -659,6 +660,21 @@ Thanks for using lazygit! Seriously you rock. Three things to share with you: Or even just star the repo to share the love! ` +const englishDeprecatedEditConfigWarning = ` +### Deprecated config warning ### + +The following config settings are deprecated and will be removed in a future +version: +{{configs}} + +Please refer to + + https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#configuring-file-editing + +for up-to-date information how to configure your editor. + +` + // exporting this so we can use it in tests func EnglishTranslationSet() TranslationSet { return TranslationSet{ @@ -805,6 +821,7 @@ func EnglishTranslationSet() TranslationSet { MergeToolTitle: "Merge tool", MergeToolPrompt: "Are you sure you want to open `git mergetool`?", IntroPopupMessage: englishIntroPopupMessage, + DeprecatedEditConfigWarning: englishDeprecatedEditConfigWarning, GitconfigParseErr: `Gogit failed to parse your gitconfig file due to the presence of unquoted '\' characters. Removing these should fix the issue.`, LcEditFile: `edit file`, LcOpenFile: `open file`, -- cgit v1.2.3