fish-shell/tests/checks/complete_directories.fish
Mahmoud Al-Qudsi 4cb19e244b Sort and deduplicate output of complete -C
This addresses a long-standing TODO where `complete -C` output isn't
deduplicated.

With this patch, the same deduplication and sort procedure that is run on actual
pager completions is also executed for `complete -C` completions (with a `-C`
payload specified).

This makes it possible to use `complete -C` to test what completions will
actually be generated by the completions pager instead of it displaying
something completely divorced from reality, improving the productivity of fish
completions developers.

Note that completions that wouldn't be shown in the pager are also omitted from
the results, e.g. `test/buildroot/` and `test/fish_expand_test/` are omitted
from the check matches in `checks/complete_directories.fish` because even if
they were generated, the pager wouldn't have shown them. This again makes
reasoning about and debugging completions much easier and more sane.
2022-10-31 16:52:36 -05:00

27 lines
792 B
Fish

#RUN: %fish %s
mkdir -p __fish_complete_directories/
cd __fish_complete_directories
mkdir -p test/buildroot
mkdir -p test/fish_expand_test
mkdir -p test/data/abc
mkdir -p test/data/abcd
touch test/data/af
touch test/data/abcdf
mkdir -p test/data/xy
mkdir -p test/data/xyz
touch test/data/xyf
touch test/data/xyzf
__fish_complete_directories test/z
# No match - no output!
__fish_complete_directories test/d
#CHECK: test/data/ Directory
__fish_complete_directories test/data
#CHECK: test/data/ Directory
__fish_complete_directories test/data/
#CHECK: test/data/abc/ Directory
#CHECK: test/data/abcd/ Directory
#CHECK: test/data/xy/ Directory
#CHECK: test/data/xyz/ Directory
__fish_complete_directories test/data/abc 'abc dirs'
#CHECK: test/data/abc/ abc dirs
#CHECK: test/data/abcd/ abc dirs