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

Re: some notes on 3.1.6



Peter Stephenson wrote:

> Sven Wischnowsky wrote:
> > .. but requiring that all
> > widgets they want to bind have to be defined by the user first is a
> > bit too much, I think
> 
> But they don't have to be defined first.
> 
> % bindkey '^[OS' foobar
> % bindkey '^[OR' whatever
> % foobar() { whatever() { LBUFFER="${LBUFFER}x" }; zle -N whatever; }
> % zle -N foobar
> 
> works as expected (S-F12 then S-F11 on my keyboard adds an 'x', without
> `whatever' being defined when I bound it.  Unless I've missed the point.

Oh. Stupid me... I thought I had tried this once and it didn't
work. Seems like I made some other mistake then. Sorry.

> > The
> > AUTO_PARAM_SLASH problem was already mentioned (the problem is that we 
> > made such parameter completions be handled almost completely in shell
> > code, so we would have to add the slashes there, too, which is a bit
> > slowish).
> 
> I've actually been doing the following and it's not so bad (it doesn't
> actually use the option).  Maybe it could just blindly use the option, as
> long as we mention the fact that it may be slow.  Maybe there's a way of
> enhancing compadd to get it to work easily: some form of the -f option
> which takes an array argument giving to the actual files to test instead
> of using the normal arguments?

Ah. I hadn't thought of something comparable to `-f'. That just says
`this is a filename, do the file-tests if needed (in do_single())'. We
could add an option that says `this is a parameter name, do the
file-tests for it if AUTO_PARAM_SLASH is set'. We would have to get
all the prefix/suffix stuff right then (and define how they work in
that case), but it should be possible... I just don't know if this is
probably to special a case.

Bye
 Sven


--
Sven Wischnowsky                         wischnow@xxxxxxxxxxxxxxxxxxxxxxx



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