Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Completing to a value that is completely different than the word for which completions are being requested
- X-seq: zsh-users 30261
- From: Eric Cook <llua@xxxxxxx>
- To: zsh-users@xxxxxxx
- Subject: Re: Completing to a value that is completely different than the word for which completions are being requested
- Date: Wed, 14 May 2025 13:42:28 -0400
- Archived-at: <https://zsh.org/users/30261>
- In-reply-to: <GkfJkDrvKtS5zNYo-MTeGLL9X6UjA_HFhjbD8cmLE98zN1C2pg2isnBqld3khVJ8dQxemDi2NxPSwtXKnoJaReKUoHLDLe19IInF3ED27y8=@proton.me>
- List-id: <zsh-users.zsh.org>
- References: <GkfJkDrvKtS5zNYo-MTeGLL9X6UjA_HFhjbD8cmLE98zN1C2pg2isnBqld3khVJ8dQxemDi2NxPSwtXKnoJaReKUoHLDLe19IInF3ED27y8=@proton.me>
- Ui-outboundreport: notjunk:1;M01:P0:SGGp3Uj1P4Q=;Y5FeQtB+YGl1olMEsHlUM/yNR68 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 t6ro=
On 5/14/25 8:03 AM, Ross Goldberg wrote:
I'm trying to provide completion candidates for mas (https://github.com/mas-cli/mas).
A certain parameter accepts an ADAM ID, which is a UInt64 ID for an app from the App Store.
I want to search through 3 different app properties (ADAM ID, Bundle ID, and Name) for installed apps, then offer as completion candidates all apps where any of the 3 aforementioned properties case-insensitively starts with the command-line word for which completions are being requested (let's call that "the word").
Once a candidate has been selected, I want to insert the ADAM ID into the command line in place of the word.
compadd's -U option is used for this:
-U If this flag is given, all completions are added to the set of matches and no matching will be done by the completion code. Normally this
is used in functions that do the matching themselves.
The "do(ing) he matching themselves" is inspecting the current word via $PREFIX, $SUFFIX (and possibly $IPREFIX, $ISUFFIX) and acting
accordingly.
a quick and dirty example:
_foo() {
local ids names
case $PREFIX in
1(<->)#|f*)
ids=(100)
names=('foo:app 1')
;;
[23](<->)#|b*)
ids=(200 300)
names=('bar:app 2' 'baz:app 3')
;;
[45](<->)#|q*)
ids=(400 500)
names=('qux:app 4' 'quux:app 5')
esac
# reminder to preferably use one of the many utility wrappers to compadd, zshcompsys(1)
_describe id names ids -U
}
compdef _foo foo
foo b<tab> will present 200 and 300, with display strings bar and baz respectively.
with the dirty part being me only filtering on the first character of the word and no filtering of possible matches,
foo 3<tab> will present 200 too. for a more complete example see _email-ldap() in Completion/Unix/Type/_email_addresses.
Messages sorted by:
Reverse Date,
Date,
Thread,
Author