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

Re: ZLE Widget: Insert last word (except &)



Felix Rosencrantz wrote:

> Talking about context and the "z" expansion flag.  It would be useful
> if it was possible to somehow get context information about the words
> that were created.
> 
> For example, if a word is
>         in the command position
>         a command separator
>         an opening or closing syntax character
>         the output/input to redirection.
>         parameter assignment (e.g. before a command)
>         etc.
> 
> I think it be useful if it was possible to get another array that provided
> information/context about each of the words from an array created via ${(z)..} 

It would definetely be useful, but it's not trivial. See the function
zle_tricky.c:get_comp_string(). That plus the code to find out the
information for every word.

However: one of the things I want to try after 4.0 is moving more of
ZLE  into shell code (optionally, as for completion). One of the
things on my list is the C-code for completion, probably with a small
new builtin for the pre- and post-widget code, but partly in shell
code. The pre-code would allow to parse a string as if it were the
command line and would return all the information completion widgets
get in the special parameters. I hadn't thought about doing this by
moving some code into the core and adding a new parameter expansion,
though. I'm not sure where the code would end up anyway, because parts 
of it wouldn't depend on the completion code, so they may be moved to
zutil or something.

Well, and that combined with a change to the completion system which
can be used to generate the context without generating completions...

> ...
> 
> Or in the history completer/widget having context information would make it
> a lot easier to look at command line structure, and prune away things that
> are unwanted, or make it easier to find things that are useful.

That sounds terribly slow ;-)

Bye
 Sven


--
Sven Wischnowsky                         wischnow@xxxxxxxxxxxxxxxxxxxxxxx



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