@@ -12,12 +12,8 @@ func (a *App) renderHelpDialog() string {
1212 Foreground (lipgloss .Color ("15" )).
1313 Background (lipgloss .Color ("62" )).
1414 Padding (0 , 1 ).
15- Width (60 ).
1615 Align (lipgloss .Center )
1716
18- titleBar := titleStyle .Render ("⌨ Keyboard Shortcuts" )
19-
20- // Help content with sections
2117 sectionStyle := lipgloss .NewStyle ().
2218 Bold (true ).
2319 Foreground (lipgloss .Color ("62" ))
@@ -29,66 +25,108 @@ func (a *App) renderHelpDialog() string {
2925 descStyle := lipgloss .NewStyle ().
3026 Foreground (lipgloss .Color ("252" ))
3127
32- var helpText string
28+ // Left column - General shortcuts
29+ var leftColumn string
30+ leftColumn += titleStyle .Width (60 ).Render ("⌨ Keyboard Shortcuts" ) + "\n \n "
3331
3432 // File section
35- helpText += sectionStyle .Render ("── File ──────────────────────────────────────" ) + "\n "
36- helpText += keyStyle .Render (" Ctrl+O" ) + descStyle .Render (" Open file" ) + "\n "
37- helpText += keyStyle .Render (" Ctrl+N" ) + descStyle .Render (" New file" ) + "\n "
38- helpText += keyStyle .Render (" Ctrl+S" ) + descStyle .Render (" Save file" ) + "\n "
39- helpText += keyStyle .Render (" Ctrl+X" ) + descStyle .Render (" Close file" ) + "\n "
40- helpText += keyStyle .Render (" Ctrl+R" ) + descStyle .Render (" Run current script" ) + "\n "
41- helpText += keyStyle .Render (" Ctrl+K" ) + descStyle .Render (" Kill running process (in terminal mode)" ) + "\n "
42- helpText += keyStyle .Render (" Ctrl+B" ) + descStyle .Render (" Backup Picker (Restore previous versions)" ) + "\n "
43- helpText += keyStyle .Render (" Ctrl+Q" ) + descStyle .Render (" Quit" ) + "\n "
44- helpText += "\n "
33+ leftColumn += sectionStyle .Render ("── File ──────────────────────────────────────" ) + "\n "
34+ leftColumn += keyStyle .Render (" Ctrl+O" ) + descStyle .Render (" Open file" ) + "\n "
35+ leftColumn += keyStyle .Render (" Ctrl+N" ) + descStyle .Render (" New file" ) + "\n "
36+ leftColumn += keyStyle .Render (" Ctrl+S" ) + descStyle .Render (" Save file" ) + "\n "
37+ leftColumn += keyStyle .Render (" Ctrl+X" ) + descStyle .Render (" Close file" ) + "\n "
38+ leftColumn += keyStyle .Render (" Ctrl+R" ) + descStyle .Render (" Run current script" ) + "\n "
39+ leftColumn += keyStyle .Render (" Ctrl+K" ) + descStyle .Render (" Kill running process (in terminal mode)" ) + "\n "
40+ leftColumn += keyStyle .Render (" Ctrl+B" ) + descStyle .Render (" Backup Picker (Restore previous versions)" ) + "\n "
41+ leftColumn += keyStyle .Render (" Ctrl+Q" ) + descStyle .Render (" Quit" ) + "\n "
42+ leftColumn += "\n "
4543
4644 // AI section
47- helpText += sectionStyle .Render ("── AI ────────────────────────────────────────" ) + "\n "
48- helpText += keyStyle .Render (" Ctrl+Y" ) + descStyle .Render (" List code blocks (Execute/Insert/Return)" ) + "\n "
49- helpText += keyStyle .Render (" Ctrl+P" ) + descStyle .Render (" Insert selected code into editor" ) + "\n "
50- helpText += keyStyle .Render (" Ctrl+A" ) + descStyle .Render (" Save full chat history to .ti/ folder" ) + "\n "
51- helpText += keyStyle .Render (" Ctrl+L" ) + descStyle .Render (" Load saved chat from .ti/ folder" ) + "\n "
52- helpText += keyStyle .Render (" Ctrl+T" ) + descStyle .Render (" Clear chat / New chat" ) + "\n "
53- helpText += "\n "
45+ leftColumn += sectionStyle .Render ("── AI ────────────────────────────────────────" ) + "\n "
46+ leftColumn += keyStyle .Render (" Ctrl+Y" ) + descStyle .Render (" List code blocks (Execute/Insert/Return)" ) + "\n "
47+ leftColumn += keyStyle .Render (" Ctrl+P" ) + descStyle .Render (" Insert selected code into editor" ) + "\n "
48+ leftColumn += keyStyle .Render (" Ctrl+A" ) + descStyle .Render (" Save full chat history to .ti/ folder" ) + "\n "
49+ leftColumn += keyStyle .Render (" Ctrl+L" ) + descStyle .Render (" Load saved chat from .ti/ folder" ) + "\n "
50+ leftColumn += keyStyle .Render (" Ctrl+T" ) + descStyle .Render (" Clear chat / New chat" ) + "\n "
51+ leftColumn += "\n "
5452
5553 // Navigation section
56- helpText += sectionStyle .Render ("── Navigation ────────────────────────────────" ) + "\n "
57- helpText += keyStyle .Render (" Tab" ) + descStyle .Render (" Cycle: Editor → AI Input → AI Response" ) + "\n "
58- helpText += keyStyle .Render (" ↑↓" ) + descStyle .Render (" Scroll line by line" ) + "\n "
59- helpText += keyStyle .Render (" PgUp/PgDn" ) + descStyle .Render (" Scroll page" ) + "\n "
60- helpText += keyStyle .Render (" Home/End" ) + descStyle .Render (" Jump to top/bottom" ) + "\n "
61- helpText += keyStyle .Render (" Esc" ) + descStyle .Render (" Back" ) + "\n "
62- helpText += keyStyle .Render (" Ctrl+E" ) + descStyle .Render (" Show Editor Shortcuts" ) + "\n "
63- helpText += "\n "
54+ leftColumn += sectionStyle .Render ("── Navigation ────────────────────────────────" ) + "\n "
55+ leftColumn += keyStyle .Render (" Tab" ) + descStyle .Render (" Cycle: Editor → AI Input → AI Response" ) + "\n "
56+ leftColumn += keyStyle .Render (" ↑↓" ) + descStyle .Render (" Scroll line by line" ) + "\n "
57+ leftColumn += keyStyle .Render (" PgUp/PgDn" ) + descStyle .Render (" Scroll page" ) + "\n "
58+ leftColumn += keyStyle .Render (" Home/End" ) + descStyle .Render (" Jump to top/bottom" ) + "\n "
59+ leftColumn += keyStyle .Render (" Esc" ) + descStyle .Render (" Back" ) + "\n "
60+ leftColumn += "\n "
6461
6562 // Agent Commands section
66- helpText += sectionStyle .Render ("── Agent Commands ────────────────────────────" ) + "\n "
67- helpText += keyStyle .Render (" /fix" ) + descStyle .Render (" Force agentic mode (AI modifies code)" ) + "\n "
68- helpText += keyStyle .Render (" /ask" ) + descStyle .Render (" Force conversational mode (no changes)" ) + "\n "
69- helpText += keyStyle .Render (" /preview" ) + descStyle .Render (" Preview changes before applying" ) + "\n "
70- helpText += keyStyle .Render (" /model" ) + descStyle .Render (" Show current agent and model info" ) + "\n "
71- helpText += keyStyle .Render (" /config" ) + descStyle .Render (" Edit configuration settings" ) + "\n "
72- helpText += keyStyle .Render (" /help" ) + descStyle .Render (" Show this help message" ) + "\n "
73- helpText += "\n "
63+ leftColumn += sectionStyle .Render ("── Agent Commands ────────────────────────────" ) + "\n "
64+ leftColumn += keyStyle .Render (" /fix" ) + descStyle .Render (" Force agentic mode (AI modifies code)" ) + "\n "
65+ leftColumn += keyStyle .Render (" /ask" ) + descStyle .Render (" Force conversational mode (no changes)" ) + "\n "
66+ leftColumn += keyStyle .Render (" /preview" ) + descStyle .Render (" Preview changes before applying" ) + "\n "
67+ leftColumn += keyStyle .Render (" /model" ) + descStyle .Render (" Show current agent and model info" ) + "\n "
68+ leftColumn += keyStyle .Render (" /config" ) + descStyle .Render (" Edit configuration settings" ) + "\n "
69+ leftColumn += keyStyle .Render (" /help" ) + descStyle .Render (" Show this help message" ) + "\n "
70+
71+ // Right column - Editor shortcuts
72+ var rightColumn string
73+ rightColumn += titleStyle .Width (60 ).Render ("✏ Editor Shortcuts" ) + "\n \n "
74+
75+ // Delete operations
76+ rightColumn += sectionStyle .Render ("── Delete ────────────────────────────────────" ) + "\n "
77+ rightColumn += keyStyle .Render (" Alt+D, D" ) + descStyle .Render (" Delete current line" ) + "\n "
78+ rightColumn += keyStyle .Render (" Alt+L" ) + descStyle .Render (" Delete current line (single key)" ) + "\n "
79+ rightColumn += keyStyle .Render (" Alt+D, W" ) + descStyle .Render (" Delete word from cursor" ) + "\n "
80+ rightColumn += keyStyle .Render (" Alt+W" ) + descStyle .Render (" Delete word from cursor (single key)" ) + "\n "
81+ rightColumn += keyStyle .Render (" Alt+D, 1-9" ) + descStyle .Render (" Delete N lines from cursor" ) + "\n "
82+ rightColumn += "\n "
83+
84+ // Undo / Redo
85+ rightColumn += sectionStyle .Render ("── Undo / Redo ───────────────────────────────" ) + "\n "
86+ rightColumn += keyStyle .Render (" Alt+U" ) + descStyle .Render (" Undo last change" ) + "\n "
87+ rightColumn += keyStyle .Render (" Alt+R" ) + descStyle .Render (" Redo last undone change" ) + "\n "
88+ rightColumn += "\n "
89+
90+ // Navigation
91+ rightColumn += sectionStyle .Render ("── Navigation ────────────────────────────────" ) + "\n "
92+ rightColumn += keyStyle .Render (" Alt+G" ) + descStyle .Render (" Go to end of file" ) + "\n "
93+ rightColumn += keyStyle .Render (" Alt+H" ) + descStyle .Render (" Go to top of file" ) + "\n "
94+ rightColumn += keyStyle .Render (" ↑↓←→" ) + descStyle .Render (" Move cursor" ) + "\n "
95+ rightColumn += keyStyle .Render (" Home/End" ) + descStyle .Render (" Jump to line start/end" ) + "\n "
96+ rightColumn += "\n "
97+
98+ // Editing
99+ rightColumn += sectionStyle .Render ("── Editing ───────────────────────────────────" ) + "\n "
100+ rightColumn += keyStyle .Render (" Enter" ) + descStyle .Render (" Insert new line" ) + "\n "
101+ rightColumn += keyStyle .Render (" Backspace" ) + descStyle .Render (" Delete char before cursor" ) + "\n "
102+ rightColumn += keyStyle .Render (" Delete" ) + descStyle .Render (" Delete char at cursor" ) + "\n "
103+
104+ // Style both columns
105+ columnStyle := lipgloss .NewStyle ().
106+ Width (64 ).
107+ Padding (1 , 2 )
108+
109+ leftBox := columnStyle .Render (leftColumn )
110+ rightBox := columnStyle .Render (rightColumn )
111+
112+ // Join columns horizontally
113+ content := lipgloss .JoinHorizontal (lipgloss .Top , leftBox , rightBox )
74114
75115 // Footer
76116 footerStyle := lipgloss .NewStyle ().
77117 Foreground (lipgloss .Color ("240" )).
78- Align (lipgloss .Center ).
79- Width (60 )
118+ Align (lipgloss .Center )
80119
81120 footer := footerStyle .Render ("Press Esc or Ctrl+H to close" )
82121
83122 // Dialog box
84123 dialogStyle := lipgloss .NewStyle ().
85124 Border (lipgloss .RoundedBorder ()).
86125 BorderForeground (lipgloss .Color ("62" )).
87- Padding (1 , 2 ).
88- Width (64 )
126+ Padding (1 , 2 )
89127
90128 dialog := dialogStyle .Render (
91- lipgloss .JoinVertical (lipgloss .Left , titleBar , "" , helpText , footer ),
129+ lipgloss .JoinVertical (lipgloss .Left , content , "" , footer ),
92130 )
93131
94132 return lipgloss .Place (a .width , a .height , lipgloss .Center , lipgloss .Center , dialog )
0 commit comments