feat(task): support exclusion groups in task name wildcards (#34506)
Adds a `(!a|b|c)` exclusion syntax to `deno task` wildcard patterns, modeled after [concurrently][cc]. For example, `deno task "test:*(!e2e|interactive)"` now matches `test:unit` and `test:integration` but skips `test:e2e` and `test:interactive`. The exclusion group is parsed off the end of the argument, and each listed value is matched against what a `*` in the pattern captured. A pattern without a `*` but with a `(!...)` group is rejected, since there is nothing to exclude from. This is the common case from #29355; more elaborate forms (multiple exclusion groups, sub-wildcards inside the group) are intentionally not handled. Closes #29355.
B
Bartek Iwańczuk committed
3c12aa92cdfafef6f0aa2727a974907c2db5ede7
Parent: 8fd78d5
Committed by GitHub <noreply@github.com>
on 5/30/2026, 7:08:47 AM