summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-29 17:47:44 +0300
committerPaul Buetow <paul@buetow.org>2026-05-29 17:47:44 +0300
commitd68792be1e88453c2c212bd271fc8b6e3f957c4c (patch)
tree765e64f8fbc2bfd31244eb639275aab9ee5e3880 /internal
parent6eccdbfa107d16670e5bd96d31e075493d0ee2d6 (diff)
fix(askcli): use real TAB split in fish dependency completion
Diffstat (limited to 'internal')
-rw-r--r--internal/askcli/completion.go2
-rw-r--r--internal/askcli/completion_test.go5
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")
}