Завершение Bash: составить список слов, как если бы они были путями - Только предлагать до следующего слэша

Я работаю над сценарием завершения bash дляутилита управления файлами dot, У инструмента есть командаdots diff [filename] это покажет разницу между установленным точечным файлом и исходным точечным файлом. У него также есть командаdots files который перечисляет пути всех файлов управляемых точек (относительно исходного каталога). Я хотел бы завершить команду diff выводом команды files.

Вот пример вывода файлов

X11/xkb/symbols/evan-custom
X11/xorg.conf.d/10-dual-monitors.conf
X11/xorg.conf.d/10-keylayout.conf
bash/aliases
bash/bashrc
bash/completion.d/dots
bash/profiles/standard-user
bash/profiles/systemd-user
bspwm/bspwmrc
compton/compton.conf
fontconfig/fonts.conf
git/config
git/ignore
gtk-2.0/gtkrc
gtk-3.0/settings.ini
mysql/config
mysql/grcat
ncmpcpp/config
pulse/client.conf
pulse/daemon.conf
pulse/default.pa
ssh/config
sublime-text-3/Packages/User/Preferences.sublime-settings
sxhkd/sxhkdrc
termite/config
transmission-daemon/settings.json
vim/vimrc

Используя что-то вроде этого

COMPREPLY=( $(compgen -W "$(dots files)" -- $cur) )

Работает, однако, когда readline перечисляет доступные опции, он перечисляет полные пути (список выше).

Я хотел бы, чтобы слова трактовались так, как если бы они были путями к файлам, а при перечислении предложений перечислялись только до первого слеша.

Например, если я набралdots diff [tab][tab] следующее должно быть напечатано

X11/
bash/
bspwm/
compton/
fontconfig/
git/
gtk-2.0/
gtk-3.0/
mysql/
ncmpcpp/
pulse/
ssh/
sublime-text-3/
sxhkd/
termite/
transmission-daemon/
vim/

Если, например, я тогда набралdots diff bash/[tab][tab] тогда это показало бы

aliases
bashrc
completion.d/
profiles/

В идеале хотелось бына самом деле рассматривать это как путь так что меняя опцию readlinemark-directories Выключить исключил бы косые черты.

Я пытался установитьcompopt -o filenames но вместо этого это дает предложения для имен файлов, а не путей изначально.

Вот сценарий завершения у меня пока

Ответы на вопрос(3)

Ваш ответ на вопрос