Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: [PATCH] Completion batch #2: Misc. trivial fixes
- X-seq: zsh-workers 42212
- From: dana <dana@xxxxxxx>
- To: Oliver Kiddle <okiddle@xxxxxxxxxxx>
- Subject: Re: [PATCH] Completion batch #2: Misc. trivial fixes
- Date: Wed, 3 Jan 2018 18:03:30 -0600
- Cc: zsh-workers@xxxxxxx
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dana-is.20150623.gappssmtp.com; s=20150623; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=fgFsmH9FuknIVBOMm/evNVdklTia/feZeSR7atjB4VA=; b=M5pVBqgABemqTbsEhVAau9BkAys8QWQxXJYqDwrzMvfeg52v+i9MNR8c/MNZCgP/kd 8nWnROwTPbBiJTPXu4tOhcPrvGg+cQtLVqUBswaJFhqNFkcgU/sppRgOyF8ujxE2D7Bb BoA9sQarEDCxdFI5Os/jSEZXwEb7iUHR8ixdeQToSVkDrPVqKc7dJMrfpd5luoGlxCxR sGhabvp2IVgLMF/EqNi+jLqwgLDlzkNz8QYzYM2XGaez1ikG4proFsK4UVZoPxYA2KS5 xwXBz5Imcdp+k7lk4U3l3aDam75dSLYaWnPzcka2HLQ+KZn+buEu3+G4F9+GZZPjq3yv ZvxA==
- In-reply-to: <18174.1515022825@thecus.kiddle.eu>
- List-help: <mailto:zsh-workers-help@zsh.org>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:zsh-workers@zsh.org>
- List-unsubscribe: <mailto:zsh-workers-unsubscribe@zsh.org>
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
- References: <289FC0FD-FDAB-4575-8882-E9F8F3FFE4C5@dana.is> <18174.1515022825@thecus.kiddle.eu>
On 3 Jan 2018, at 17:40, Oliver Kiddle <okiddle@xxxxxxxxxxx> wrote:
>Digging around in $_cmd_variant is essentially looking into the
>internals of _pick_variant. The documented interface is to use the -r
>option to _pick_variant. Also, it is not saving the full output of
>expand --version, it will either have the value "gnu" or "unix".
Well, maybe it's worth bringing this up now, then, before i submit any further
patches: The reason i'd added that check is that i wanted to be able to complete
commands like this:
% busybox expand -<TAB>
This use case doesn't seem (necessarily) compatible with _pick_variant as-is,
because your unadorned `expand` may be a totally different variant from `busybox
expand`. The way i had handled this in the _busybox function is:
_cmd_variant[${words[1]}]=busybox _normal
That way you can temporarily override what _pick_variant thinks the actual
variant is. This seems to work quite well, but i did feel some guilt about it,
since as you mention it's circumventing the interface.
Another issue i had with _pick_variant is dealing with risky commands. In most
cases i imagine it's probably fine to do something like `poweroff --help`... but
i certainly didn't want to take the chance, since a badly written poweroff might
just kill the machine if you're running as root. So i had again bypassed
_pick_variant and manipulated _cmd_variant myself.
Do you have a suggestion as to how i could accomplish things like this in a less
hacky way? Maybe _pick_variant could learn an option to set the variant
directly? Alternatively, maybe i am over-engineering everything again...?
On 3 Jan 2018, at 17:40, Oliver Kiddle <okiddle@xxxxxxxxxxx> wrote:
>Given that these are hidden options, excluding other numeric options is
>pointless. It is also arguably wrong because the tab width can be more
>than 9 characters wide: e.g. expand -20 is valid.
All i really wanted was to have it not offer -t if a numeric option's already
been given. The completion function doesn't have to know that -20 is different
from -2 -0 to do that, AFAIK. Didn't consider that excluding the other options
is pointless though, i suppose it is superfluous.
Thanks!
dana
Messages sorted by:
Reverse Date,
Date,
Thread,
Author