For instance with this entry, > [/vsmagent/level1/level2/level3/level4/level5/level6/level7/level8] > > testvalue=999 in vsmagent.hconf, attempting to tab complete directories with the --all-entries option as in > $ tl-config --all-entries /vsmagent/lev won't complete the full unique directory path in one completion. Instead, one has to press tab for all the levels. Conversely, with no options given we tab complete for parameters, and this completer only returns a maximum of two levels down for some reason. Attempting to tab complete this line > $ tl-config /vsmagent/lev yields > $ tl-config /vsmagent/level1/level2/ > /vsmagent/level1/level2/ /vsmagent/level1/level2/level3/ where the first suggestion is simply a repetition, and one has to assist the completer into the next level (every two levels). Unsure if tl-session-param exhibits similar problems with similar completers. Seen with server build #3632 on RHEL9.
Missed when testing tab completion in bug 7867 probably due to lack of sufficiently deep entries while testing.
It might not be a bug that we only get one folder at a time when completing a unique path with multiple levels. This is how 'ls' behaves when completing folders.
Attachment 1234 [details] on bug 8384 removes a lot of complexity for the --all-entries, I think the correct way forward is to only complete one level at a time.
This has been fixed as of r41664 and r41667 in bug 8384. Both `tl-config -a` (all_entries_completer) and `tl-config` (param_completer) now only expand one folder level at a time when tab-completing. Incorrect repetitions in tab-completion was also removed. While there could be an argument for completing as far as possible (if that was the only unique way forward), it doesn't feel natural. If the completer would sometimes suggest only one level, but then sometimes multiple levels, the feeling for the user would be inconsistent. Looking at `dconf` for example, it behaves like tl-config does now after these changes. Given a dconf folder "/system/locale/" with only a key "region" inside, the tab completion from "/system/" will still require the user to first step to "/system/locale/" and then to "/system/locale/region" in a second step. This feels natural. As mentioned in comment #2, this also matches the behavior of `ls` tab completion.