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

Re: Trial patch for showing completion in progress



Peter wrote:
> I often want to find out what completion is doing when it goes away for
> a while.  Here's a simple patch that helps, though I think there's more
> that can be done.  No documentation yet.

In most cases, if it takes a while it is filename completion trying to
look for files in the full path: the stuff which allows /u/l/b to
complete to /usr/local/bin.

> As defined, you set the show-completer style to true in any context
> where you want to show the status.  It is examined when each element of
> the completer list is tried.  The message is overwritten by any list
> output.
> 
> Is there a better place for this?  On the whole I think this point is OK.

It depends what you are trying to do. Are you trying to show the
completers or the zstyle context? _main_complete is not the only place
the context is changed so for showing the context, _description or
_setup would be a better place.

> Is there a way of doing this only if completion takes a certain time?
> E.g. store SECONDS as floating point and examine it at certain key
> points?

Why not just stick $SECONDS (as floating point) in PS4 and use
_complete_debug.

I'm not convinced we should be sticking debug stuff like this into
completion unless it really is proven to be useful. I normally prefer to
use a second tty for completion debug output instead of zle. And it
isn't hard to make temporary changes to _main_complete (or whatever) for
debugging.

> Is there a way of removing the zle -M output if the completion produced
> no output?

Either you have to replace compadd with a function or, depending on
where you produce the debug, you might be able to check
compstate[nmatches].

Oliver



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