[Bash-completion-devel] Dynamic completion loader.

Freddy Vulto fvulto at gmail.com
Fri Apr 8 21:31:54 UTC 2011


Another problem is that completions for bash < 4.1 need to have their
meta-options set during installation rather then during invocation.
This concerns the `-o COMP-OPTION' options: bashdefault, default,
dirnames, filenames and nospace.

See also:
http://fvue.nl/wiki/Bash_completion_library#Problem_2:_Completion_can.27t_access_completion_meta-options

The workaround for bash < 4.1 used by bash-completion-lib, requires
spreading completions into different directories:
- complete -o default
- complete -o default -o filenames
- complete -o default -o nospace
- complete -o dirnames
- complete -o filenames
- complete -o filenames -o nospace
- complete -o nospace
but this adds complicity, so if we can avoid this by requiring
bash >= 4.1, +1 from me.

We can use the `compopt' of bash-4 to tweak these options during
completion invocation (there was a bug in bash-4.0 which should be
fixed, see:
http://www.mail-archive.com/bug-bash@gnu.org/msg06183.html).

But with a central completion loader, it looks like we need to modify
completions: transfer the complete meta-options to `compopt ...'
statements within the completions?  I assume this goes wrong in Dawid's
solution?

Freddy Vulto
http://fvue.nl



More information about the Bash-completion-devel mailing list