on main help sign in
chore: tool border, navigation help
commit00d444e0bb2be7b2218465fa474adaea648aaf68 authorKujtim Hoxha <kujtimii.h@gmail.com> dateFri 20 Jun 2025, 17:38 (1 year ago) parent8dbabea
9 files changed+24−30
internal/tui/components/chat/chat.go+1−2 internal/tui/components/chat/messages/messages.go+5−1 internal/tui/components/chat/messages/tool.go+6−1 internal/tui/components/completions/completions.go−2 internal/tui/components/core/list/keys.go+10−12 internal/tui/components/core/list/list.go+2−6 internal/tui/components/dialogs/commands/commands.go−2 internal/tui/components/dialogs/models/models.go−2 internal/tui/components/dialogs/sessions/sessions.go−2
internal/tui/components/chat/chat.go+1−2
@@ -509,6 +509,5 @@ func (m *messageListCmp) IsFocused() bool {
509509}
510510
511511func (m *messageListCmp) Bindings() []key.Binding {
512− bindings := m.defaultListKeyMap.KeyBindings()
513− return bindings
512+ return m.defaultListKeyMap.KeyBindings()
514513}
internal/tui/components/chat/messages/messages.go+5−1
@@ -43,6 +43,10 @@ type messageCmp struct {
4343 anim util.Model // Animation component for loading states
4444}
4545
46+var focusedMessageBorder = lipgloss.Border{
47+ Left: "▌",
48+}
49+
4650// NewMessageCmp creates a new message component with the given message and options
4751func NewMessageCmp(msg message.Message) MessageCmp {
4852 m := &messageCmp{
@@ -112,7 +116,7 @@ func (msg *messageCmp) style() lipgloss.Style {
112116 t := styles.CurrentTheme()
113117 borderStyle := lipgloss.NormalBorder()
114118 if msg.focused {
115− borderStyle = lipgloss.ThickBorder()
119+ borderStyle = focusedMessageBorder
116120 }
117121
118122 style := t.S().Text
internal/tui/components/chat/messages/tool.go+6−1
@@ -224,7 +224,12 @@ func (m *toolCallCmp) style() lipgloss.Style {
224224 if m.isNested {
225225 return t.S().Muted
226226 }
227− return t.S().Muted.PaddingLeft(4)
227+ style := t.S().Muted.PaddingLeft(4)
228+
229+ if m.focused {
230+ style = style.PaddingLeft(3).BorderStyle(focusedMessageBorder).BorderLeft(true).BorderForeground(t.GreenDark)
231+ }
232+ return style
228233}
229234
230235// textWidth calculates the available width for text content,
internal/tui/components/completions/completions.go−2
@@ -57,8 +57,6 @@ func New() Completions {
5757 keyMap := list.DefaultKeyMap()
5858 keyMap.Up.SetEnabled(false)
5959 keyMap.Down.SetEnabled(false)
60− keyMap.NDown.SetEnabled(false)
61− keyMap.NUp.SetEnabled(false)
6260 keyMap.HalfPageDown.SetEnabled(false)
6361 keyMap.HalfPageUp.SetEnabled(false)
6462 keyMap.Home.SetEnabled(false)
internal/tui/components/core/list/keys.go+10−12
@@ -7,8 +7,6 @@ import (
77type KeyMap struct {
88 Down,
99 Up,
10− NDown,
11− NUp,
1210 DownOneItem,
1311 UpOneItem,
1412 HalfPageDown,
@@ -20,34 +18,36 @@ type KeyMap struct {
2018func DefaultKeyMap() KeyMap {
2119 return KeyMap{
2220 Down: key.NewBinding(
23− key.WithKeys("down", "ctrl+j", "ctrl+n"),
21+ key.WithKeys("down", "ctrl+j", "ctrl+n", "j"),
22+ key.WithHelp("↓", "down"),
2423 ),
2524 Up: key.NewBinding(
26− key.WithKeys("up", "ctrl+k", "ctrl+p"),
27− ),
28− NDown: key.NewBinding(
29− key.WithKeys("j"),
30− ),
31− NUp: key.NewBinding(
32− key.WithKeys("k"),
25+ key.WithKeys("up", "ctrl+k", "ctrl+p", "k"),
26+ key.WithHelp("↑", "up"),
3327 ),
3428 UpOneItem: key.NewBinding(
3529 key.WithKeys("shift+up", "K"),
30+ key.WithHelp("shift+↑", "up one item"),
3631 ),
3732 DownOneItem: key.NewBinding(
3833 key.WithKeys("shift+down", "J"),
34+ key.WithHelp("shift+↓", "down one item"),
3935 ),
4036 HalfPageDown: key.NewBinding(
4137 key.WithKeys("d"),
38+ key.WithHelp("d", "half page down"),
4239 ),
4340 HalfPageUp: key.NewBinding(
4441 key.WithKeys("u"),
42+ key.WithHelp("u", "half page up"),
4543 ),
4644 Home: key.NewBinding(
4745 key.WithKeys("g", "home"),
46+ key.WithHelp("g", "home"),
4847 ),
4948 End: key.NewBinding(
5049 key.WithKeys("G", "end"),
50+ key.WithHelp("G", "end"),
5151 ),
5252 }
5353}
@@ -57,8 +57,6 @@ func (k KeyMap) KeyBindings() []key.Binding {
5757 return []key.Binding{
5858 k.Down,
5959 k.Up,
60− k.NDown,
61− k.NUp,
6260 k.DownOneItem,
6361 k.UpOneItem,
6462 k.HalfPageDown,
internal/tui/components/core/list/list.go+2−6
@@ -254,10 +254,6 @@ func New(opts ...listOptions) ListModel {
254254 ti.Focus()
255255 ti.SetStyles(t.S().TextInput)
256256 m.input = ti
257−
258− // disable j,k movements
259− m.keyMap.NDown.SetEnabled(false)
260− m.keyMap.NUp.SetEnabled(false)
261257 }
262258 return m
263259}
@@ -319,9 +315,9 @@ func (m *model) View() tea.View {
319315// Supports scrolling, item selection, and navigation to top/bottom.
320316func (m *model) handleKeyPress(msg tea.KeyPressMsg) (tea.Model, tea.Cmd) {
321317 switch {
322− case key.Matches(msg, m.keyMap.Down) || key.Matches(msg, m.keyMap.NDown):
318+ case key.Matches(msg, m.keyMap.Down):
323319 m.scrollDown(1)
324− case key.Matches(msg, m.keyMap.Up) || key.Matches(msg, m.keyMap.NUp):
320+ case key.Matches(msg, m.keyMap.Up):
325321 m.scrollUp(1)
326322 case key.Matches(msg, m.keyMap.DownOneItem):
327323 return m, m.selectNextItem()
internal/tui/components/dialogs/commands/commands.go−2
@@ -68,8 +68,6 @@ func NewCommandDialog(sessionID string) CommandsDialog {
6868
6969 listKeyMap.Down.SetEnabled(false)
7070 listKeyMap.Up.SetEnabled(false)
71− listKeyMap.NDown.SetEnabled(false)
72− listKeyMap.NUp.SetEnabled(false)
7371 listKeyMap.HalfPageDown.SetEnabled(false)
7472 listKeyMap.HalfPageUp.SetEnabled(false)
7573 listKeyMap.Home.SetEnabled(false)
internal/tui/components/dialogs/models/models.go−2
@@ -53,8 +53,6 @@ func NewModelDialogCmp() ModelDialog {
5353
5454 listKeyMap.Down.SetEnabled(false)
5555 listKeyMap.Up.SetEnabled(false)
56− listKeyMap.NDown.SetEnabled(false)
57− listKeyMap.NUp.SetEnabled(false)
5856 listKeyMap.HalfPageDown.SetEnabled(false)
5957 listKeyMap.HalfPageUp.SetEnabled(false)
6058 listKeyMap.Home.SetEnabled(false)
internal/tui/components/dialogs/sessions/sessions.go−2
@@ -42,8 +42,6 @@ func NewSessionDialogCmp(sessions []session.Session, selectedID string) SessionD
4242
4343 listKeyMap.Down.SetEnabled(false)
4444 listKeyMap.Up.SetEnabled(false)
45− listKeyMap.NDown.SetEnabled(false)
46− listKeyMap.NUp.SetEnabled(false)
4745 listKeyMap.HalfPageDown.SetEnabled(false)
4846 listKeyMap.HalfPageUp.SetEnabled(false)
4947 listKeyMap.Home.SetEnabled(false)