diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2022-07-30 20:27:51 +1000 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2022-07-30 20:27:51 +1000 |
commit | ab5a8091f5d8768406f32260711131ccbcedb195 (patch) | |
tree | ba858c4430cfc87f66d5ea7dde47b60b9ca1a55f /pkg/gui/menu_panel.go | |
parent | 95678b1b43dbff23fc331df03c4dcb783fb90b4d (diff) |
add better support for OpensMenu option when creating a menu
Diffstat (limited to 'pkg/gui/menu_panel.go')
-rw-r--r-- | pkg/gui/menu_panel.go | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/pkg/gui/menu_panel.go b/pkg/gui/menu_panel.go index 59dd6b3a5..34dd1c615 100644 --- a/pkg/gui/menu_panel.go +++ b/pkg/gui/menu_panel.go @@ -1,11 +1,12 @@ package gui import ( - "errors" "fmt" + "github.com/jesseduffield/lazygit/pkg/gui/presentation" "github.com/jesseduffield/lazygit/pkg/gui/types" "github.com/jesseduffield/lazygit/pkg/theme" + "github.com/jesseduffield/lazygit/pkg/utils" ) func (gui *Gui) getMenuOptions() map[string]string { @@ -30,9 +31,25 @@ func (gui *Gui) createMenu(opts types.CreateMenuOptions) error { }) } + maxColumnSize := 1 + + for _, item := range opts.Items { + if item.LabelColumns == nil { + item.LabelColumns = []string{item.Label} + } + + if item.OpensMenu { + item.LabelColumns[0] = presentation.OpensMenuStyle(item.LabelColumns[0]) + } + + maxColumnSize = utils.Max(maxColumnSize, len(item.LabelColumns)) + } + for _, item := range opts.Items { - if item.OpensMenu && item.LabelColumns != nil { - return errors.New("Message for the developer of this app: you've set opensMenu with displaystrings on the menu panel. Bad developer!. Apologies, user") + if len(item.LabelColumns) < maxColumnSize { + // we require that each item has the same number of columns so we're padding out with blank strings + // if this item has too few + item.LabelColumns = append(item.LabelColumns, make([]string, maxColumnSize-len(item.LabelColumns))...) } } |