Skip to content

Commit 984c84f

Browse files
authored
feat: show indicator on help keybindings (opt-in) (#839)
* feat: show indicator on help keybindings (opt-in) * format code
1 parent bb098b2 commit 984c84f

File tree

3 files changed

+24
-11
lines changed

3 files changed

+24
-11
lines changed

table/command.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -142,10 +142,11 @@ func (o Options) Run() error {
142142
defer cancel()
143143

144144
m := model{
145-
table: table,
146-
showHelp: o.ShowHelp,
147-
help: help.New(),
148-
keymap: defaultKeymap(),
145+
table: table,
146+
showHelp: o.ShowHelp,
147+
hideIndicator: o.HideIndicator,
148+
help: help.New(),
149+
keymap: defaultKeymap(),
149150
}
150151
tm, err := tea.NewProgram(
151152
m,

table/options.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ type Options struct {
1616
File string `short:"f" help:"file path" default:""`
1717
Border string `short:"b" help:"border style" default:"rounded" enum:"rounded,thick,normal,hidden,double,none"`
1818
ShowHelp bool `help:"Show help keybinds" default:"true" negatable:"" env:"GUM_TABLE_SHOW_HELP"`
19+
HideIndicator bool `help:"Hide indicator on help keybinds" default:"false" negatable:"" env:"GUM_TABLE_HIDE_INDICATOR"`
1920
LazyQuotes bool `help:"If LazyQuotes is true, a quote may appear in an unquoted field and a non-doubled quote may appear in a quoted field" default:"false" env:"GUM_TABLE_LAZY_QUOTES"`
2021
FieldsPerRecord int `help:"Sets the number of expected fields per record" default:"0" env:"GUM_TABLE_FIELDS_PER_RECORD"`
2122

table/table.go

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
package table
1616

1717
import (
18+
"fmt"
19+
1820
"github.com/charmbracelet/bubbles/help"
1921
"github.com/charmbracelet/bubbles/key"
2022
"github.com/charmbracelet/bubbles/table"
@@ -62,16 +64,25 @@ func defaultKeymap() keymap {
6264
}
6365

6466
type model struct {
65-
table table.Model
66-
selected table.Row
67-
quitting bool
68-
showHelp bool
69-
help help.Model
70-
keymap keymap
67+
table table.Model
68+
selected table.Row
69+
quitting bool
70+
showHelp bool
71+
hideIndicator bool
72+
help help.Model
73+
keymap keymap
7174
}
7275

7376
func (m model) Init() tea.Cmd { return nil }
7477

78+
func (m model) inidicatorView() string {
79+
if m.hideIndicator {
80+
return ""
81+
}
82+
83+
return m.help.Styles.FullDesc.Render(fmt.Sprintf("%d/%d%s", m.table.Cursor()+1, len(m.table.Rows()), m.help.ShortSeparator))
84+
}
85+
7586
func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
7687
var cmd tea.Cmd
7788

@@ -102,7 +113,7 @@ func (m model) View() string {
102113
}
103114
s := m.table.View()
104115
if m.showHelp {
105-
s += "\n" + m.help.View(m.keymap)
116+
s += "\n" + m.inidicatorView() + m.help.View(m.keymap)
106117
}
107118
return s
108119
}

0 commit comments

Comments
 (0)