Zsh Mailing List Archive
Messages sorted by:
Re: [PATCH] completion: matcher correspondence classes: fix offset
- X-seq: zsh-workers 49665
- From: Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx>
- To: Mikael Magnusson <mikachu@xxxxxxxxx>
- Cc: m0viefreak <m0viefreak.cm@xxxxxxxxxxxxxx>, Zsh hackers list <zsh-workers@xxxxxxx>
- Subject: Re: [PATCH] completion: matcher correspondence classes: fix offset
- Date: Fri, 24 Dec 2021 11:58:45 -0800
- Archived-at: <https://zsh.org/workers/49665>
- In-reply-to: <CAHYJk3RDwCZi1hfk0axb+0E5ySQ=brJYCW-CjFDMZhaaKDxniA@mail.gmail.com>
- List-id: <zsh-workers.zsh.org>
- References: <email@example.com> <CAHYJk3RDwCZi1hfk0axb+0E5ySQ=brJYCW-CjFDMZhaaKDxniA@mail.gmail.com>
On Thu, Dec 23, 2021 at 12:25 PM Mikael Magnusson <mikachu@xxxxxxxxx> wrote:
> Were there ever any follwoups to this?
I don't recall seeing any. Probably the only thing desirable beyond
that patch would be a regression test.
In the original message:
> > a) Why does "cfp_matcher_range" do nothing if more than
> > one matcher spec is given?
It's not that it does nothing, it's that it never gets called by
cfp_matcher_pats() when there is a matcher-list style but not a
matcher style. I haven't worked through exactly why THAT happens, but
it has to do with whether there's anything left over after the loop in
cfp_matcher_pats(). I have noticed that the "compadd -D" pass behaves
the same way regardless of the styles: cfp_matcher_pats() loops
through the matcher spec and ends up with nothing left at the end, so
cfp_matcher_range() is not called.
> > b) Do we even need the "cfp_matcher_range" function
> > at all? Seems like the later compadd -D works
Although _path_files is the only function that currently calls
compfiles -p, that doesn't mean no other function ever might ... so
what would happen if the compadd -D were never done?
> > c) Why does _path_files duplicate all matcher-list
> > entries when calling "compfiles -p"?
It doesn't appear to duplicate matcher-list entries ... what it does
is build its own list of matchers from its -M option, the "expl" value
returned by _description, and the setting of nocaseglob, and then
appends that to the matcher-list passed down from _main_complete.
That may or may not duplicate parts of the matcher-list. I suppose
_path_files could scan the $_matcher global to be sure it doesn't
append something that is already there ...?
Messages sorted by: