zsh-users
 help / color / mirror / code / Atom feed
From: Daniel Shahaf <d.s@daniel.shahaf.name>
To: zsh-users@zsh.org
Subject: Re: Most minimal configuration challenge
Date: Mon, 12 Sep 2022 08:59:48 +0000	[thread overview]
Message-ID: <20220912085948.GW5920@tarpaulin.shahaf.local2> (raw)
In-Reply-To: <20220905094734.GC255763@zira.vinc17.org>

Vincent Lefevre wrote on Mon, Sep 05, 2022 at 11:47:34 +0200:
> On 2022-09-04 06:42:24 +0000, Daniel Shahaf wrote:
> > Vincent Lefevre wrote on Fri, Sep 02, 2022 at 16:44:34 +0200:
> > > For instance, "zstyle -L" gives in particular:
> > > 
> > >   zstyle :urlglobber url-local-schema ftp file
> > >   zstyle ':url-quote-magic:*' url-metas '*?[]^(|)~#{}='
> > > 
> > > but I can't find any explanation about why it should be ":urlglobber"
> > > and not something else. The man page looks similar for urlglobber and
> > > url-quote-magic, though they look different above.
> > 
> > By convention, context patterns are of the form «:foo:…» where «foo»
> > identifies a particular library / module / plugin for namespacing
> > reasons.  So, it says ":urlglobber" and not something else because
> > that's what the author of urlglobber named urlglobber.
> 
> This is still unclear. The zshcontrib(1) man page says:
> 
>         zstyle :bracketed-paste-magic paste-finish \
>                quote-paste
>         zstyle :bracketed-paste-magic:finish quote-style \
>                qqq
> 
> But I don't see why ":bracketed-paste-magic" is used in the first line
> instead of ":bracketed-paste-magic:*".

The context pattern must match the lookup's context.  The lookup of the
paste-finish style in the bracketed-paste-magic plugin are under the
context ":bracketed-paste-magic".  The pattern ":bracketed-paste-magic:*"
wouldn't match that context.

> Moreover, I don't see where the context "finish" is described in the
> man pages.

The context element "finish" is specific to the quote-paste helper
function.  (That's perhaps not clear from the documentation.)  The
possible values of that style are indeed undocumented.  Bart?

> > > In the zshmodules(1) man page:
> > > 
> > >   For  example,  a  fictional  `weather' plugin might state in its
> > >   documentation that it looks up the preferred-precipitation style
> > >   under the `:weather:continent:day-of-the-week:phase-of-the-moon'
> > >   context.  According to this, you might set the following in your
> > >   zshrc:
> > > 
> > >     zstyle ':weather:europe:*' preferred-precipitation rain
> > >     zstyle ':weather:*:Sunday:*' preferred-precipitation snow
> > > 
> > > So I would expect the translator to mention "continent",
> > > "day-of-the-week" and "phase-of-the-moon" in its output.
> > 
> > The zstyle completion actually does this; try completing
> > «zstyle :vcs_info:<TAB>» or «zstyle :completion:<TAB>».
> 
> zstyle :vcs_info:<TAB>
> 
> just gives
> 
> Completing `context pattern' or `vcs'
> 

Here it says «vcs» and offers the various valid values (plus or minus
quilt and hooks, but that's another story).

Under «zsh -f» the various valid values aren't completed until
vcs_info_printsys is callable.  Running vcs_info once does the trick.
Presumably _zstyle should «autoload vcs_info_printsys» before calling it.
Could someone test this, please?  (I'm ENOTIME.)

> This is not very informative. This is different from the man page,
> which says "vcs-string".
> 

Again, I'm ENOTIME, but patches are welcome.

> zstyle :bracketed-paste-magic:<TAB>
> 
> is even less informative:
> 
> Completing `context pattern'
> 

bracketed-paste-magic styles should /not/ be completed at this point.

Styles used by the quote-paste helper function /should/ be completed at
that point.  So, the problem is just that _zstyle doesn't know about the
styles used by that helper function.

_zstyle could be taught about bracketed-paste-magic and quote-paste…

… but it doesn't scale for _zstyle to know about any random zstyle-using
thing.  For instance, a third party plugin that looks up zstyles might
want implement completion for them.  It'd be a lot easier to do that if
_zstyle would, say, delegate to «_zstyle-foo» for completion related to
contexts of the form (:foo|:foo:*), and that function were implemented
by by the foo (possibly third-party) plugin.

> With "ls -<TAB>", I get a list of possible options together with
> a short explanation. I would expect something like that with
> "zstyle :completion:<TAB>" rather than just a list of the possible
> completions.

Patches welcome.  See _zstyle and _describe.

Cheers,

Daniel


  reply	other threads:[~2022-09-12  9:01 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-27  4:30 Felipe Contreras
2022-08-27 16:10 ` Daniel Shahaf
2022-08-27 19:32   ` Vincent Bernat
2022-08-27 20:04     ` Lawrence Velázquez
2022-08-27 23:53       ` Ray Andrews
2022-08-28  7:53         ` zzapper
2022-08-28 10:30         ` Daniel Shahaf
2022-08-28 13:59           ` Ray Andrews
2022-08-28 18:29             ` Daniel Shahaf
2022-08-31  9:28               ` Vincent Lefevre
2022-08-31 14:17                 ` Ray Andrews
2022-09-01 21:52                   ` Felipe Contreras
2022-09-02  1:41                     ` Lawrence Velázquez
2022-09-02  1:26                   ` Lawrence Velázquez
2022-09-02  1:49                     ` Felipe Contreras
2022-09-02  5:40                       ` Lawrence Velázquez
2022-09-02  7:38                         ` Felipe Contreras
2022-09-02 10:36                       ` Daniel Shahaf
2022-09-02 14:26                         ` Ray Andrews
2022-09-04  7:13                           ` Daniel Shahaf
2022-09-04 16:30                             ` Ray Andrews
2022-09-02 10:39                       ` [PATCH] zstyle: Correct and expand docs (was: Re: Most minimal configuration challenge) Daniel Shahaf
2022-09-02 15:05                         ` Bart Schaefer
2022-09-04  6:51                           ` Daniel Shahaf
2022-09-02 13:55                       ` Most minimal configuration challenge Ray Andrews
2022-09-04  7:21                         ` Daniel Shahaf
2022-09-04 16:34                           ` Ray Andrews
2022-09-02 13:32                     ` Ray Andrews
2022-09-04  7:28                       ` Daniel Shahaf
2022-09-02  9:53                   ` Daniel Shahaf
2022-09-02  9:26                 ` Daniel Shahaf
2022-09-02 14:44                   ` Vincent Lefevre
2022-09-04  6:42                     ` Daniel Shahaf
2022-09-05  9:47                       ` Vincent Lefevre
2022-09-12  8:59                         ` Daniel Shahaf [this message]
2022-08-28 18:58             ` Bart Schaefer
2022-08-28 19:23               ` Felipe Contreras
2022-08-28 19:35               ` Ray Andrews
2022-08-28 18:57   ` Felipe Contreras
2022-09-02  1:36 ` Vincent Lefevre

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=20220912085948.GW5920@tarpaulin.shahaf.local2 \
    --to=d.s@daniel.shahaf.name \
    --cc=zsh-users@zsh.org \
    /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).