@@ -67,7 +67,7 @@ const (
67 maxAttachments = 5
67 maxAttachments = 5
70−func (m *editorCmp) openEditor() tea.Cmd {
70+func (m *editorCmp) openEditor(value string) tea.Cmd {
71 editor := os.Getenv("EDITOR")
71 editor := os.Getenv("EDITOR")
72 if editor == "" {
72 if editor == "" {
73 // Use platform-appropriate default editor
73 // Use platform-appropriate default editor
@@ -82,7 +82,10 @@ func (m *editorCmp) openEditor() tea.Cmd {
82 if err != nil {
82 if err != nil {
83 return util.ReportError(err)
83 return util.ReportError(err)
85− tmpfile.Close()
85+ defer tmpfile.Close() //nolint:errcheck
86+ if _, err := tmpfile.WriteString(value); err != nil {
87+ return util.ReportError(err)
86 c := exec.Command(editor, tmpfile.Name())
89 c := exec.Command(editor, tmpfile.Name())
87 c.Stdin = os.Stdin
90 c.Stdin = os.Stdin
88 c.Stdout = os.Stdout
91 c.Stdout = os.Stdout
@@ -242,7 +245,7 @@ func (m *editorCmp) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
242 if m.app.CoderAgent.IsSessionBusy(m.session.ID) {
245 if m.app.CoderAgent.IsSessionBusy(m.session.ID) {
243 return m, util.ReportWarn("Agent is working, please wait...")
246 return m, util.ReportWarn("Agent is working, please wait...")
245− return m, m.openEditor()
248+ return m, m.openEditor(m.textarea.Value())
247 if key.Matches(msg, DeleteKeyMaps.Escape) {
250 if key.Matches(msg, DeleteKeyMaps.Escape) {
248 m.deleteMode = false
251 m.deleteMode = false