zsh-users
 help / color / mirror / code / Atom feed
From: Sven Wischnowsky <wischnow@berkom.de>
To: zsh-users@sunsite.dk
Subject: Re: Case-insensitive completion of files with matcher-list
Date: Tue, 16 Apr 2002 10:25:28 +0200	[thread overview]
Message-ID: <15547.57336.753975.336253@wischnow.berkom.de> (raw)
In-Reply-To: <Pine.LNX.4.44.0204151308350.6883-100000@ns1.sodaware.com>


Bart Schaefer wrote:

> On Mon, 15 Apr 2002, Hannu Koivisto wrote:
> 
> > zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'
> >
> > That works fine indeed, but what if I want case-insensitive
> > completion only for files?  After reading about contexts and
> > fiddling with C-x h, I figured that
> >
> > zstyle ':completion:*:all-files' matcher-list 'm:{a-zA-Z}={A-Za-z}'
> >
> > should do the trick
> 
> You're not quite right.  matcher-list is used only at the global level,
> not for individual tags like all-files.  For an individual tag, you want
> to use just the 'matcher' style:
> 
>  zstyle ':completion:*:all-files' matcher 'm:{a-zA-Z}={A-Za-z}'
> 
> Unfortunately, there appears to be a bug in _path_files -- it copies any
> global matcher from matcher-list through to the call to compfiles, but it
> doesn't do the same for a matcher passed to it with the -M option (which
> is where the string from the matcher style ends up).
> 
> Unfortunately I don't see offhand how to fix this.  Sven?

It's collected in $matcher and I really think it was an oversight.
Sorry for this (and for sending a patch to -users).

Also note that one might want to include the other file-tags in this
case, e.g.: `:completion:*:(direcories|((all-|globbed-|)files))'.


Bye
  Sven

Index: Completion/Unix/Type/_path_files
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Unix/Type/_path_files,v
retrieving revision 1.14
diff -u -r1.14 _path_files
--- Completion/Unix/Type/_path_files	17 Oct 2001 13:29:21 -0000	1.14
+++ Completion/Unix/Type/_path_files	16 Apr 2002 08:24:00 -0000
@@ -335,11 +335,11 @@
     tmp2=( "$tmp1[@]" )
 
     if [[ "$tpre$tsuf" = */* ]]; then
-      compfiles -P$cfopt tmp1 accex "$skipped" "$_matcher" "$sdirs" fake
+      compfiles -P$cfopt tmp1 accex "$skipped" "$_matcher $matcher[2]" "$sdirs" fake
     elif [[ "$sopt" = *[/f]* ]]; then
-      compfiles -p$cfopt tmp1 accex "$skipped" "$_matcher" "$sdirs" fake "$pats[@]"
+      compfiles -p$cfopt tmp1 accex "$skipped" "$_matcher $matcher[2]" "$sdirs" fake "$pats[@]"
     else
-      compfiles -p$cfopt tmp1 accex "$skipped" "$_matcher" '' fake "$pats[@]"
+      compfiles -p$cfopt tmp1 accex "$skipped" "$_matcher $matcher[2]" '' fake "$pats[@]"
     fi
     tmp1=( $~tmp1 )
 

-- 
Sven Wischnowsky                          wischnow@berkom.de


      reply	other threads:[~2002-04-16  8:26 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-04-15 18:22 Hannu Koivisto
2002-04-15 20:19 ` Bart Schaefer
2002-04-16  8:25   ` Sven Wischnowsky [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=15547.57336.753975.336253@wischnow.berkom.de \
    --to=wischnow@berkom.de \
    --cc=zsh-users@sunsite.dk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).