Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Using _describe for completions.



Nicholas Wiles wrote on Thu, 12 Oct 2017 09:19 -0700:
> Hello fellow users, fist time poster. I apologize if this is not the right place. 
> 
> On zsh 5.2 I am trying to write a completion function using the _describe builtin.
> 
> __foo_complete_func() {
>   list=(foo:'description for foo’ bar:'description for bar')

Please don't use Unicode quotes in code samples, that makes harder to try them.

>   _describe '’ list && _ret=0

What's this _ret thing?  Your completion function is overwriting a
global variable named "_ret".

> }
> 
> compdef __foo_complete_func foo
> 
> When autocompleting just “foo ” I get the expected:
> 
> bar  -- description for bar
> foo  -- description for foo
> 
> However when tab completing "foo b" I get no matches shown. I don’t understand why this is. I would expect to get the completion "foo bar”
> 
> Any ideas?

Works for me in 'zsh -f' + 'autoload compinit; compinit' + (pasting your
code) + 'foo b<TAB>'.

I would make the first argument to _describe non-empty just in case
there's a null argument elision somewhere, but for clarity, it works for
me as posted.



Messages sorted by: Reverse Date, Date, Thread, Author