zsh-workers
 help / color / mirror / code / Atom feed
* Tab expansion of {*
@ 2006-12-02  0:14 Dave Yost
  2006-12-05 16:35 ` Bart Schaefer
  0 siblings, 1 reply; 3+ messages in thread
From: Dave Yost @ 2006-12-02  0:14 UTC (permalink / raw)
  To: zsh-workers

[-- Attachment #1: Type: text/plain, Size: 159 bytes --]

If I type the Tab key at this point

Z% ls /usr/{*

Zsh should expand this to

Z% ls /usr/{X11R6,bin,include,lib,libexec,local,man,sbin,share,standalone}

Dave

[-- Attachment #2: Type: text/html, Size: 561 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Tab expansion of {*
  2006-12-02  0:14 Tab expansion of {* Dave Yost
@ 2006-12-05 16:35 ` Bart Schaefer
  2006-12-05 16:41   ` Peter Stephenson
  0 siblings, 1 reply; 3+ messages in thread
From: Bart Schaefer @ 2006-12-05 16:35 UTC (permalink / raw)
  To: zsh-workers

On Dec 1,  4:14pm, Dave Yost wrote:
}
} Z% ls /usr/{*
} 
} Zsh should expand this to
} 
} Z% ls /usr/{X11R6,bin,include,lib,libexec,local,man,sbin,share,standalone}

I'll assume you're referring to compsys-driven expansion rather than to
what happens with only "zsh -f".

This is tricky because by the time the _expand completer is called,
something else has removed the open brace and the pattern appears to
be "/usr/*".  So there's no way for _expand to know that when it adds
the all-expansions completion, it should join with a comma instead of
with a space.

In fact the open brace appears to have been removed by the C code even
before _main_complete is called.  _expand constructs the pattern from
    word="$IPREFIX$PREFIX$SUFFIX$ISUFFIX"
and the brace isn't in there.  There doesn't appear to be anything in
the compstate hash that would reveal that the brace used to be present,
either.  So the only approach seems to be to examine $words[CURRENT],
which feels icky to me.

And even if we got it right that way, I think the internals would end
up adding a comma as the final word separator rather than a brace.  Which
is not necessarily wrong, as brace patterns aren't required to match
real existing file names.

Peter, any thoughts?


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Tab expansion of {*
  2006-12-05 16:35 ` Bart Schaefer
@ 2006-12-05 16:41   ` Peter Stephenson
  0 siblings, 0 replies; 3+ messages in thread
From: Peter Stephenson @ 2006-12-05 16:41 UTC (permalink / raw)
  To: zsh-workers

Bart Schaefer wrote:
> On Dec 1,  4:14pm, Dave Yost wrote:
> }
> } Z% ls /usr/{*
> } 
> } Zsh should expand this to
> } 
> } Z% ls /usr/{X11R6,bin,include,lib,libexec,local,man,sbin,share,standalone}
> 
> In fact the open brace appears to have been removed by the C code even
> before _main_complete is called.
>...
> Peter, any thoughts?

Only that, as you say, there's already a lot of handling for this in the
icky C code which I'm not going anywhere near.

I think it was written to be simple to use from something less
configurable than the present system (i.e. compctl).  Nowadays it would
make more sense to handle it all as a completer which decide whether it
would do expansion or completion and in the latter case might
temporarily hide the other branches of the expansion.

-- 
Peter Stephenson <pws@csr.com>                  Software Engineer
CSR PLC, Churchill House, Cambridge Business Park, Cowley Road
Cambridge, CB4 0WZ, UK                          Tel: +44 (0)1223 692070


To access the latest news from CSR copy this link into a web browser:  http://www.csr.com/email_sig.php


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2006-12-05 16:43 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-12-02  0:14 Tab expansion of {* Dave Yost
2006-12-05 16:35 ` Bart Schaefer
2006-12-05 16:41   ` Peter Stephenson

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).