summaryrefslogtreecommitdiffhomepage
path: root/internal/tui/components/repl/editor.go
diff options
context:
space:
mode:
authorKujtim Hoxha <[email protected]>2025-04-11 18:54:13 +0200
committerKujtim Hoxha <[email protected]>2025-04-21 13:38:42 +0200
commit23e7a95083a8d875420c90e0479647f18a278c5f (patch)
tree3f91d3eaad7267030cf079e7f946de480ffb2e54 /internal/tui/components/repl/editor.go
parent6b1c64bcc75b89c530294b6a2d4404682b435d56 (diff)
downloadopencode-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.go48
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 {