diff options
| author | Paul Buetow <paul@buetow.org> | 2026-05-29 17:47:44 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-05-29 17:47:44 +0300 |
| commit | d68792be1e88453c2c212bd271fc8b6e3f957c4c (patch) | |
| tree | 765e64f8fbc2bfd31244eb639275aab9ee5e3880 /internal/askcli | |
| parent | 6eccdbfa107d16670e5bd96d31e075493d0ee2d6 (diff) | |
fix(askcli): use real TAB split in fish dependency completion
Diffstat (limited to 'internal/askcli')
| -rw-r--r-- | internal/askcli/completion.go | 2 | ||||
| -rw-r--r-- | internal/askcli/completion_test.go | 5 |
2 files changed, 5 insertions, 2 deletions
diff --git a/internal/askcli/completion.go b/internal/askcli/completion.go index 79dd923..b41aeb6 100644 --- a/internal/askcli/completion.go +++ b/internal/askcli/completion.go @@ -328,7 +328,7 @@ func writeFishAddDependencyModifierFunction(b *strings.Builder) { // Each item from __ask_task_selectors is "selector\tdescription"; extract // just the selector (before the tab) for matching and output purposes. b.WriteString(" for item in (__ask_task_selectors)\n") - b.WriteString(" set -l selector (string split -m1 '\\t' -- $item)[1]\n") + b.WriteString(" set -l selector (string split -m1 \"\t\" -- $item)[1]\n") b.WriteString(" if contains -- $selector $chosen\n") b.WriteString(" continue\n") b.WriteString(" end\n") diff --git a/internal/askcli/completion_test.go b/internal/askcli/completion_test.go index d3f08e5..015c7d5 100644 --- a/internal/askcli/completion_test.go +++ b/internal/askcli/completion_test.go @@ -38,12 +38,15 @@ func TestFishCompletion_IncludesCommandsAndExcludesExport(t *testing.T) { // The dep modifier function must extract just the selector (before the // tab) from each tab-separated "selector\tdescription" completion item. "for item in (__ask_task_selectors)", - "set -l selector (string split -m1 '\\t' -- $item)[1]", + "set -l selector (string split -m1 \"\t\" -- $item)[1]", } { if !strings.Contains(script, line) { t.Fatalf("script missing dep completion line %q", line) } } + if strings.Contains(script, "set -l selector (string split -m1 '\\t' -- $item)[1]") { + t.Fatalf("dep selector split must use a real tab delimiter, not literal \\\\t") + } if strings.Contains(script, "ask export") { t.Fatalf("script should not advertise non-existent export command") } |
