mirror of
https://github.com/sst/opencode.git
synced 2025-12-23 10:11:41 +00:00
fix: editor paste functionality for text attachments (#3489)
This commit is contained in:
parent
e3e16e58c5
commit
7216a8c86d
2 changed files with 13 additions and 2 deletions
|
|
@ -48,6 +48,7 @@ type EditorComponent interface {
|
|||
SetInterruptKeyInDebounce(inDebounce bool)
|
||||
SetExitKeyInDebounce(inDebounce bool)
|
||||
RestoreFromHistory(index int)
|
||||
GetAttachments() []*attachment.Attachment
|
||||
}
|
||||
|
||||
type editorComponent struct {
|
||||
|
|
@ -471,6 +472,10 @@ func (m *editorComponent) Length() int {
|
|||
return m.textarea.Length()
|
||||
}
|
||||
|
||||
func (m *editorComponent) GetAttachments() []*attachment.Attachment {
|
||||
return m.textarea.GetAttachments()
|
||||
}
|
||||
|
||||
func (m *editorComponent) Submit() (tea.Model, tea.Cmd) {
|
||||
value := strings.TrimSpace(m.Value())
|
||||
if value == "" {
|
||||
|
|
@ -628,9 +633,7 @@ func (m *editorComponent) SetValueWithAttachments(value string) {
|
|||
}
|
||||
if end > start {
|
||||
filePath := value[start:end]
|
||||
slog.Debug("test", "filePath", filePath)
|
||||
if _, err := os.Stat(filepath.Join(util.CwdPath, filePath)); err == nil {
|
||||
slog.Debug("test", "found", true)
|
||||
attachment := m.createAttachmentFromFile(filePath)
|
||||
if attachment != nil {
|
||||
m.textarea.InsertAttachment(attachment)
|
||||
|
|
|
|||
|
|
@ -1164,6 +1164,14 @@ func (a Model) executeCommand(command commands.Command) (tea.Model, tea.Cmd) {
|
|||
}
|
||||
|
||||
value := a.editor.Value()
|
||||
|
||||
// Expand text attachments before opening editor
|
||||
for _, att := range a.editor.GetAttachments() {
|
||||
if textSource, ok := att.GetTextSource(); ok {
|
||||
value = strings.Replace(value, att.Display, textSource.Value, 1)
|
||||
}
|
||||
}
|
||||
|
||||
updated, cmd := a.editor.Clear()
|
||||
a.editor = updated.(chat.EditorComponent)
|
||||
cmds = append(cmds, cmd)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue