fix: textarea - Enter翻译/Alt+Enter换行

This commit is contained in:
2026-04-06 06:15:34 +08:00
parent 1996e60567
commit 18b191d10d

View File

@@ -106,14 +106,13 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
return m, nil return m, nil
case tea.KeyMsg: case tea.KeyMsg:
keyStr := msg.String() switch msg.Type {
switch { case tea.KeyEnter:
case keyStr == "ctrl+enter": if msg.Alt {
m.textArea.InsertString("\n") m.textArea.InsertString("\n")
m.updateTextAreaHeight() m.updateTextAreaHeight()
return m, nil return m, nil
}
case keyStr == "enter":
if m.loading { if m.loading {
return m, nil return m, nil
} }
@@ -125,21 +124,21 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
m.errMsg = "" m.errMsg = ""
return m, m.doTranslate(text, m.targetLang) return m, m.doTranslate(text, m.targetLang)
case keyStr == "ctrl+c": case tea.KeyCtrlC:
return m, tea.Quit return m, tea.Quit
case keyStr == "ctrl+l": case tea.KeyCtrlL:
m.textArea.SetValue("") m.textArea.SetValue("")
m.result = "" m.result = ""
m.errMsg = "" m.errMsg = ""
return m, nil return m, nil
case keyStr == "ctrl+t": case tea.KeyCtrlT:
m.langIndex = (m.langIndex + 1) % len(supportedLangs) m.langIndex = (m.langIndex + 1) % len(supportedLangs)
m.targetLang = supportedLangs[m.langIndex] m.targetLang = supportedLangs[m.langIndex]
return m, nil return m, nil
case keyStr == "esc": case tea.KeyEsc:
return m, tea.Quit return m, tea.Quit
} }