fish-shell/share/functions/__fish_complete_gpg_user_id.fish
Spenser Black 63d7386a36 completions/gpg: list only secret for gpg options that manage secret keys
Some GPG options work only with private keys but our completions suggest all
keys.  Modify `__fish_complete_gpg_user_id and __fish_complete_gpg_key_id`
to take an optional argument for the "key type" to override `--list-keys`
with like `--list-secret-keys` for the appropriate options.

Closes #8712
2022-02-19 13:48:20 +01:00

12 lines
729 B
Fish

# Helper function for contextual autocompletion of gpg user ids
function __fish_complete_gpg_user_id -d "Complete using gpg user ids" -a __fish_complete_gpg_command list_arg
# gpg doesn't seem to like it when you use the whole key name as a
# completion, so we skip the <EMAIL> part and use it as a description.
# It also replaces \x3a from gpg's output with colons.
#
# TODO: I tried with <EMAIL> and it worked, this was possibly fixed in gpg.
# Regardless, it's probably nicer as a description.
set -q list_arg[1]; or set list_arg --list-keys
$__fish_complete_gpg_command $list_arg --with-colon | string split -a -f 10 : | string replace '\x3a' : | string replace -r '(.*) <(.*)>' '$1\t$2'
end