diff --git a/pkg/gui/controllers/edit_config_action.go b/pkg/gui/controllers/edit_config_action.go new file mode 100644 index 000000000..b3a863035 --- /dev/null +++ b/pkg/gui/controllers/edit_config_action.go @@ -0,0 +1,36 @@ +package controllers + +import ( + "errors" + + "github.com/jesseduffield/lazygit/pkg/gui/types" + "github.com/samber/lo" +) + +type EditConfigAction struct { + c *ControllerCommon +} + +func (self *EditConfigAction) Call() error { + confPaths := self.c.GetConfig().GetUserConfigPaths() + switch len(confPaths) { + case 0: + return errors.New(self.c.Tr.NoConfigFileFoundErr) + case 1: + return self.c.Helpers().Files.EditFiles(confPaths) + default: + menuItems := lo.Map(confPaths, func(path string, _ int) *types.MenuItem { + return &types.MenuItem{ + Label: path, + OnPress: func() error { + return self.c.Helpers().Files.EditFiles([]string{path}) + }, + } + }) + + return self.c.Menu(types.CreateMenuOptions{ + Title: self.c.Tr.SelectConfigFile, + Items: menuItems, + }) + } +} diff --git a/pkg/gui/controllers/status_controller.go b/pkg/gui/controllers/status_controller.go index e96d371ea..5a740a23a 100644 --- a/pkg/gui/controllers/status_controller.go +++ b/pkg/gui/controllers/status_controller.go @@ -1,7 +1,6 @@ package controllers import ( - "errors" "fmt" "strings" "time" @@ -12,7 +11,6 @@ import ( "github.com/jesseduffield/lazygit/pkg/gui/style" "github.com/jesseduffield/lazygit/pkg/gui/types" "github.com/jesseduffield/lazygit/pkg/utils" - "github.com/samber/lo" ) type StatusController struct { @@ -143,27 +141,7 @@ func lazygitTitle() string { } func (self *StatusController) editConfig() error { - confPaths := self.c.GetConfig().GetUserConfigPaths() - switch len(confPaths) { - case 0: - return errors.New(self.c.Tr.NoConfigFileFoundErr) - case 1: - return self.c.Helpers().Files.EditFiles(confPaths) - default: - menuItems := lo.Map(confPaths, func(path string, _ int) *types.MenuItem { - return &types.MenuItem{ - Label: path, - OnPress: func() error { - return self.c.Helpers().Files.EditFiles([]string{path}) - }, - } - }) - - return self.c.Menu(types.CreateMenuOptions{ - Title: self.c.Tr.SelectConfigFile, - Items: menuItems, - }) - } + return (&EditConfigAction{c: self.c}).Call() } func (self *StatusController) showAllBranchLogs() {