From f29c81fb5c3bacb0ba3c0bf3ba090a36a2381a9c Mon Sep 17 00:00:00 2001 From: Dawid Dziurla Date: Tue, 4 Sep 2018 15:25:02 +0200 Subject: [PATCH] add getMaxKeyLength --- pkg/gui/help_panel.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/pkg/gui/help_panel.go b/pkg/gui/help_panel.go index ffb0628b7..958014432 100644 --- a/pkg/gui/help_panel.go +++ b/pkg/gui/help_panel.go @@ -5,6 +5,7 @@ import ( "strings" "github.com/jesseduffield/gocui" + "github.com/jesseduffield/lazygit/pkg/utils" ) var keys []Binding @@ -60,15 +61,27 @@ func (gui *Gui) GetKey(binding Binding) string { return key } +func (gui *Gui) getMaxKeyLength(bindings []Binding) int { + max := 0 + for _, binding := range bindings { + keyLength := len(gui.GetKey(binding)) + if keyLength > max { + max = keyLength + } + } + return max +} + func (gui *Gui) handleHelp(g *gocui.Gui, v *gocui.View) error { // clear keys slice, so we don't have ghost elements keys = keys[:0] content := "" bindings := gui.GetKeybindings() + padWidth := gui.getMaxKeyLength(bindings) for _, binding := range bindings { if key := gui.GetKey(binding); key != "" && binding.ViewName == v.Name() && binding.Description != "" { - content += fmt.Sprintf(" %s - %s\n", key, binding.Description) + content += fmt.Sprintf("%s %s\n", utils.WithPadding(key, padWidth), binding.Description) keys = append(keys, binding) } }