@@ -204,6 +204,10 @@ func (p *chatPage) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
204 return p, tea.Batch(p.SetSize(p.width, p.height), cmd)
204 return p, tea.Batch(p.SetSize(p.width, p.height), cmd)
205 case commands.ToggleThinkingMsg:
205 case commands.ToggleThinkingMsg:
206 return p, p.toggleThinking()
206 return p, p.toggleThinking()
207+ case commands.OpenExternalEditorMsg:
208+ u, cmd := p.editor.Update(msg)
209+ p.editor = u.(editor.Editor)
207 case pubsub.Event[session.Session]:
211 case pubsub.Event[session.Session]:
208 u, cmd := p.header.Update(msg)
212 u, cmd := p.header.Update(msg)
209 p.header = u.(header.Header)
213 p.header = u.(header.Header)
@@ -896,9 +900,13 @@ func (p *chatPage) Help() help.KeyMap {
896 key.WithHelp("/", "add file"),
900 key.WithHelp("/", "add file"),
898 key.NewBinding(
902 key.NewBinding(
899− key.WithKeys("ctrl+v"),
903+ key.WithKeys("ctrl+o"),
900− key.WithHelp("ctrl+v", "open editor"),
904+ key.WithHelp("ctrl+o", "open editor"),
908+ if p.editor.HasAttachments() {
909+ fullList = append(fullList, []key.Binding{
902 key.NewBinding(
910 key.NewBinding(
903 key.WithKeys("ctrl+r"),
911 key.WithKeys("ctrl+r"),
904 key.WithHelp("ctrl+r+{i}", "delete attachment at index i"),
912 key.WithHelp("ctrl+r+{i}", "delete attachment at index i"),
@@ -912,6 +920,7 @@ func (p *chatPage) Help() help.KeyMap {
912 key.WithHelp("esc", "cancel delete mode"),
920 key.WithHelp("esc", "cancel delete mode"),
916 shortList = append(shortList,
925 shortList = append(shortList,