fish-shell/tests
Fabian Homborg 64b34c8cda Allow complete to have multiple conditions
This makes it so `complete -c foo -n test1 -n test2` registers *both*
conditions, and when it comes time to check the candidate, tries both,
in that order. If any fails it stops, if all succeed the completion is offered.

The reason for this is that it helps with caching - we have a
condition cache, but conditions like

```fish
test (count (commandline -opc)) -ge 2; and contains -- (commandline -opc)[2] length

test (count (commandline -opc)) -ge 2; and contains -- (commandline -opc)[2] sub
```

defeats it pretty easily, because the cache only looks at the entire
script as a string - it can't tell that the first `test` is the same
in both.

So this means we separate it into

```fish
complete -f -c string -n "test (count (commandline -opc)) -ge 2; and contains -- (commandline -opc)[2] length" -s V -l visible -d "Use the visible width, excluding escape sequences"
+complete -f -c string -n "test (count (commandline -opc)) -ge 2" -n "contains -- (commandline -opc)[2] length" -s V -l visible -d "Use the visible width, excluding escape sequences"
```

which allows the `test` to be cached.

In tests, this improves performance for the string completions by 30%
by reducing all the redundant `test` calls.

The `git` completions can also greatly benefit from this.
2022-05-30 20:47:14 +02:00
..
checks Allow complete to have multiple conditions 2022-05-30 20:47:14 +02:00
pexpects Be careful to not touch curses variables if cur_term is null 2022-04-16 13:26:56 -07:00
test_functions tests/tmux: Do actually loop 25 times 2021-09-24 18:27:14 +02:00
.gitignore tweak gitignore rules for *tests* directory 2017-02-20 20:29:43 -08:00
history_sample_bash Support $(cmd) command substitution as alternative to (cmd) 2021-07-13 21:33:42 +02:00
history_sample_corrupt1 Improve history robustness against corrupt files 2014-07-29 14:42:03 -07:00
history_sample_fish_1_x Enforce that history items must end with trailing newlines 2021-05-10 14:23:07 -07:00
history_sample_fish_2_0 Enforce that history items must end with trailing newlines 2021-05-10 14:23:07 -07:00
interactive.config Remove some unused functions from the test harness 2020-11-15 09:17:23 +01:00
interactive.fish Add pexpect tests to new test driver 2021-08-29 08:56:12 +02:00
test.fish cmake: Force color in the tests 2021-08-30 17:16:19 +02:00
test_driver.sh fix build when path has spaces in it. 2021-10-22 02:27:19 -07:00
test_env.sh tests/test_env.sh: fix copy paste error so we export XDG_RUNTIME_DIR 2021-10-23 18:59:15 +02:00
test_util.fish Run each test fully independently in own environment 2021-08-29 08:56:12 +02:00