diff options
| author | Kujtim Hoxha <[email protected]> | 2025-04-11 18:54:13 +0200 |
|---|---|---|
| committer | Kujtim Hoxha <[email protected]> | 2025-04-21 13:38:42 +0200 |
| commit | 23e7a95083a8d875420c90e0479647f18a278c5f (patch) | |
| tree | 3f91d3eaad7267030cf079e7f946de480ffb2e54 /internal/tui/components/repl/editor.go | |
| parent | 6b1c64bcc75b89c530294b6a2d4404682b435d56 (diff) | |
| download | opencode-23e7a95083a8d875420c90e0479647f18a278c5f.tar.gz opencode-23e7a95083a8d875420c90e0479647f18a278c5f.zip | |
intiial layout
Diffstat (limited to 'internal/tui/components/repl/editor.go')
| -rw-r--r-- | internal/tui/components/repl/editor.go | 48 |
1 files changed, 27 insertions, 21 deletions
diff --git a/internal/tui/components/repl/editor.go b/internal/tui/components/repl/editor.go index 37ac275e3..e9493129d 100644 --- a/internal/tui/components/repl/editor.go +++ b/internal/tui/components/repl/editor.go @@ -156,30 +156,36 @@ func (m *editorCmp) Cancel() tea.Cmd { } func (m *editorCmp) Send() tea.Cmd { - return func() tea.Msg { - messages, err := m.app.Messages.List(m.sessionID) - if err != nil { - return util.ReportError(err) - } - if hasUnfinishedMessages(messages) { - return util.ReportWarn("Assistant is still working on the previous message") - } - a, err := agent.NewCoderAgent(m.app) - if err != nil { - return util.ReportError(err) - } + if m.cancelMessage != nil { + return util.ReportWarn("Assistant is still working on the previous message") + } - content := strings.Join(m.editor.GetBuffer().Lines(), "\n") - ctx, cancel := context.WithCancel(m.app.Context) - m.cancelMessage = cancel - go func() { - defer cancel() - a.Generate(ctx, m.sessionID, content) - m.cancelMessage = nil - }() + messages, err := m.app.Messages.List(m.sessionID) + if err != nil { + return util.ReportError(err) + } + if hasUnfinishedMessages(messages) { + return util.ReportWarn("Assistant is still working on the previous message") + } + + a, err := agent.NewCoderAgent(m.app) + if err != nil { + return util.ReportError(err) + } - return m.editor.Reset() + content := strings.Join(m.editor.GetBuffer().Lines(), "\n") + if len(content) == 0 { + return util.ReportWarn("Message is empty") } + ctx, cancel := context.WithCancel(m.app.Context) + m.cancelMessage = cancel + go func() { + defer cancel() + a.Generate(ctx, m.sessionID, content) + m.cancelMessage = nil + }() + + return m.editor.Reset() } func (m *editorCmp) View() string { |
