diff options
Diffstat (limited to 'internal/askcli')
| -rw-r--r-- | internal/askcli/command_edit.go | 11 | ||||
| -rw-r--r-- | internal/askcli/command_edit_test.go | 4 |
2 files changed, 8 insertions, 7 deletions
diff --git a/internal/askcli/command_edit.go b/internal/askcli/command_edit.go index 27c9106..a82d575 100644 --- a/internal/askcli/command_edit.go +++ b/internal/askcli/command_edit.go @@ -10,9 +10,10 @@ import ( // captureFromEditor opens the user's editor on a temporary file pre-filled with // the given initial content and returns its trimmed contents after the editor -// exits. It is a variable so tests can stub it. -var captureFromEditor = func(initial []byte) (string, error) { - return editor.OpenTempAndEdit(initial) +// exits. ctx is forwarded to the editor subprocess so it can be cancelled with +// the surrounding command. It is a variable so tests can stub it. +var captureFromEditor = func(ctx context.Context, initial []byte) (string, error) { + return editor.OpenTempAndEdit(ctx, initial) } // handleEdit opens the configured editor on a temporary file. With no selector @@ -22,7 +23,7 @@ func (d *Dispatcher) handleEdit(ctx context.Context, args []string, stdout, stde if len(args) >= 2 { return d.editTaskDescription(ctx, args[1], stdout, stderr) } - description, err := captureFromEditor(nil) + description, err := captureFromEditor(ctx, nil) if err != nil { writeInfoError(stderr, err) return 1, nil @@ -43,7 +44,7 @@ func (d *Dispatcher) editTaskDescription(ctx context.Context, selector string, s return code, nil } - description, err := captureFromEditor([]byte(tasks[0].Description)) + description, err := captureFromEditor(ctx, []byte(tasks[0].Description)) if err != nil { writeInfoError(stderr, err) return 1, nil diff --git a/internal/askcli/command_edit_test.go b/internal/askcli/command_edit_test.go index 80cbd56..4db19c1 100644 --- a/internal/askcli/command_edit_test.go +++ b/internal/askcli/command_edit_test.go @@ -12,7 +12,7 @@ import ( func stubEditorCapture(t *testing.T, content string, err error) { t.Helper() old := captureFromEditor - captureFromEditor = func(initial []byte) (string, error) { + captureFromEditor = func(_ context.Context, initial []byte) (string, error) { return content, err } t.Cleanup(func() { captureFromEditor = old }) @@ -60,7 +60,7 @@ func TestHandleEdit_ExistingTaskModifiesDescription(t *testing.T) { var initialContent []byte old := captureFromEditor - captureFromEditor = func(initial []byte) (string, error) { + captureFromEditor = func(_ context.Context, initial []byte) (string, error) { initialContent = initial return "updated description", nil } |
