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

Re: PATCH: _diff (new), _prcs (upgrade)



>>> "Sven" == Sven Wischnowsky <wischnow@xxxxxxxxxxxxxxxxxxxxxxx> writes:

 Sven> Alexandre Duret-Lutz wrote:

[...]

 Sven> The only problem is that this means that such options will always be
 Sven> combined with the ones a user might define in a style. I.e. there are
 Sven> actually two types of options a completion function might give to a
 Sven> command: those that *have* to be there to make it work in the way the
 Sven> function needs it (like the -v for diff) and those the completion
 Sven> functions *suggests* to use -- which may be overridden by a user's
 Sven> style. Ideally, we should support both cases...

Yes, I was speaking of what you call *suggested* options.  As for now, to
set these options, we should set a default style in compinit or elsewhere.
But since these *suggested* options must be quite uncommon, this is not a
problem. ok.

[...]

 >> and if a rule is chosen, _call can apply it

[...]

 Sven> I suggested that to enable completion functions to make it as you
 Sven> described in 9453: if we are completing for the command, call it
 Sven> without a `command', otherwise with it. And that can't be decided in
 Sven> _call.

I must be missing something.  Can't $curcontext be used? 
I am thinking about something like this:

    # 
    _call () {  
      if [[ $curcontext == *:$1: ]]
      then
        $1                   #(A)
      else
        command $1           #(B)
      fi
    }

    _f() {
      _call foo
    } 

    compdef _f foo bar


seems to run either (A) or (B) wheter I complete after foo or bar.

-- 
Alexandre Duret-Lutz



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