[Bash-completion-devel] using external helpers for completion

Freddy Vulto fvulto at gmail.com
Wed Aug 25 20:08:18 UTC 2010


On 100722 23:39, Guillaume Rousse wrote:
> A friend of mine just suggested me to have a look at
> http://github.com/ap/perldoc-complete
>
> Basically, it uses an external perl script instead of embedding ugly
> one-liners in shell script. I tried it, the improvement is impressing.
>
> I'd like to import it in the project, but we have no specific provision
> for using external helpers now, and we still install completions scripts
> in $sysconfdir/bash_completion.d. I'm going to install it in
> $datadir/bash_completion/helpers, unless someone has a better suggestion.

+1 for using helpers.  However, my test suite is failing on perldoc now:

    FAIL: perldoc - should show completions at timeout
    FAIL: perldoc should complete word containing colons

When trying to complete manually I get this:

    $ perldoc <TAB>bash: @helpersdir@/perldoc: No such file or directory
    $ complete -p perldoc
    complete -o default -o nospace -C @helpersdir@/perldoc perldoc

It looks like when running bash-completion directly from git, the
`@helpersdir@' isn't replaced properly: how should I get this to work?
Anyway I'd rather see we use a construction like
`$BASH_COMPLETION_DIR/../helpers' so that bash-completion stays working
directly from git?

I think even better - because contrib & helpers having such a strong
relationship - would be to embed the `helpers' dir within the `contrib'
dir:

    +-- contrib
        +-- helpers

so that `contrib/perldoc' can do:

    complete -C ${BASH_SOURCE[0]%/*}/helpers/perldoc perldoc


Freddy Vulto
http://fvue.nl



More information about the Bash-completion-devel mailing list