on main help sign in
Merge pull request #115 from charmbracelet/editor-text

fix(tui): copy textarea value to editor on open

commitb0c95173a3b795411c349422a9bfc32b722eab3b authorKujtim Hoxha <kujtimii.h@gmail.com> dateThu 10 Jul 2025, 16:33 (1 year ago) parent5affd9a0016e44
1 file changed+6−3
internal/tui/components/chat/editor/editor.go+6−3
internal/tui/components/chat/editor/editor.go+6−3
@@ -67,7 +67,7 @@ const (
6767 maxAttachments = 5
6868)
6969
70−func (m *editorCmp) openEditor() tea.Cmd {
70+func (m *editorCmp) openEditor(value string) tea.Cmd {
7171 editor := os.Getenv("EDITOR")
7272 if editor == "" {
7373 // Use platform-appropriate default editor
@@ -82,7 +82,10 @@ func (m *editorCmp) openEditor() tea.Cmd {
8282 if err != nil {
8383 return util.ReportError(err)
8484 }
85− tmpfile.Close()
85+ defer tmpfile.Close() //nolint:errcheck
86+ if _, err := tmpfile.WriteString(value); err != nil {
87+ return util.ReportError(err)
88+ }
8689 c := exec.Command(editor, tmpfile.Name())
8790 c.Stdin = os.Stdin
8891 c.Stdout = os.Stdout
@@ -242,7 +245,7 @@ func (m *editorCmp) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
242245 if m.app.CoderAgent.IsSessionBusy(m.session.ID) {
243246 return m, util.ReportWarn("Agent is working, please wait...")
244247 }
245− return m, m.openEditor()
248+ return m, m.openEditor(m.textarea.Value())
246249 }
247250 if key.Matches(msg, DeleteKeyMaps.Escape) {
248251 m.deleteMode = false