mirror of
https://github.com/anotherhadi/spilltea.git
synced 2026-05-21 18:12:33 +02:00
Allow user to "edit" response in replay: allow vim navigation & filters
Signed-off-by: Hadi <112569860+anotherhadi@users.noreply.github.com>
This commit is contained in:
+18
-2
@@ -15,7 +15,7 @@ type EditorFinishedMsg struct {
|
||||
Err error
|
||||
}
|
||||
|
||||
func OpenExternalEditor(content string) tea.Cmd {
|
||||
func resolveEditor() string {
|
||||
editor := config.Global.App.ExternalEditor
|
||||
if editor == "" {
|
||||
editor = os.Getenv("EDITOR")
|
||||
@@ -23,6 +23,10 @@ func OpenExternalEditor(content string) tea.Cmd {
|
||||
if editor == "" {
|
||||
editor = "vi"
|
||||
}
|
||||
return editor
|
||||
}
|
||||
|
||||
func openWithEditor(content string, callback func(string, error) tea.Msg) tea.Cmd {
|
||||
f, err := os.CreateTemp("", "spilltea-*.http")
|
||||
if err != nil {
|
||||
return nil
|
||||
@@ -32,8 +36,14 @@ func OpenExternalEditor(content string) tea.Cmd {
|
||||
log.Printf("editor: writing temp file: %v", err)
|
||||
}
|
||||
f.Close()
|
||||
return tea.ExecProcess(exec.Command(editor, tmpPath), func(err error) tea.Msg {
|
||||
return tea.ExecProcess(exec.Command(resolveEditor(), tmpPath), func(err error) tea.Msg {
|
||||
defer os.Remove(tmpPath)
|
||||
return callback(tmpPath, err)
|
||||
})
|
||||
}
|
||||
|
||||
func OpenExternalEditor(content string) tea.Cmd {
|
||||
return openWithEditor(content, func(tmpPath string, err error) tea.Msg {
|
||||
if err != nil {
|
||||
return EditorFinishedMsg{Err: err}
|
||||
}
|
||||
@@ -44,3 +54,9 @@ func OpenExternalEditor(content string) tea.Cmd {
|
||||
return EditorFinishedMsg{Content: string(data)}
|
||||
})
|
||||
}
|
||||
|
||||
func OpenExternalEditorView(content string) tea.Cmd {
|
||||
return openWithEditor(content, func(_ string, _ error) tea.Msg {
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user