zsh-users
 help / color / mirror / code / Atom feed
From: Doron Behar <doron.behar@gmail.com>
To: zsh-users@zsh.org
Subject: Having a hard time dealing with a completion collision
Date: Tue, 18 Feb 2020 18:37:25 +0200	[thread overview]
Message-ID: <20200218163725.zdkiord4uaxmutsk@NUX> (raw)

I'm using todoman <https://github.com/pimutils/todoman> and it provides
a useful completion for ZSH (I happen to be the writer of it):
<https://github.com/pimutils/todoman/blob/master/contrib/completion/zsh/_todo>

TIL there's another completion file in ZSH's tree that has `#compdef
todo` among other common aliases for it:
https://gitlab.com/zsh-org/zsh/-/blob/5c55b3fb50bbfe602fcfa55fa6258e398ecc6b20/Completion/Unix/Command/_devtodo

I'm using NixOS and this is my `$fpath`:

~/.zsh/comp/tested
~/.zsh/comp/local
/usr/local/share/zsh/site-functions
/nix/store/k9rq1cymsrbfybzgx21c5g851085w0fz-zsh-5.7.1/share/zsh/site-functions
/nix/store/k9rq1cymsrbfybzgx21c5g851085w0fz-zsh-5.7.1/share/zsh/5.7.1/functions
/run/current-system/sw/share/zsh/site-functions
/run/current-system/sw/share/zsh/5.7.1/functions
/run/current-system/sw/share/zsh/vendor-completions
/nix/var/nix/profiles/default/share/zsh/site-functions
/nix/var/nix/profiles/default/share/zsh/5.7.1/functions
/nix/var/nix/profiles/default/share/zsh/vendor-completions
/etc/profiles/per-user/doron/share/zsh/site-functions
/etc/profiles/per-user/doron/share/zsh/5.7.1/functions
/etc/profiles/per-user/doron/share/zsh/vendor-completions
~/.nix-profile/share/zsh/site-functions
~/.nix-profile/share/zsh/5.7.1/functions
~/.nix-profile/share/zsh/vendor-completions

I tried putting the replacement `_todo` file in my first fpath directory
- `~/.zsh/comp/tested/` but surprisingly I still got the failing devtodo
completion loaded instead of the replacement completion.

Assuming I'm not interested in submitting a change to ZSH's source tree,
what would be the best way to handle this collision? My current rather
ugly workaround is to rename the desired completion's file to `_td` and
make it complete `td` instead of `todo` while using the following:

td(){
  todo "$@"
}

An alias doesn't work because ZSH see's there's such an alias and it
loads devtodo's completion just like it would as if there wasn't an
alias.

Help will be appreciated.

Doron.

             reply	other threads:[~2020-02-18 16:38 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20200218163908eucas1p28a3b95a5e11163f515ee6e902ff9bbf5@eucas1p2.samsung.com>
2020-02-18 16:37 ` Doron Behar [this message]
2020-02-18 16:50   ` Daniel Shahaf
2020-02-18 19:13     ` Doron Behar
2020-02-18 17:02   ` Peter Stephenson
2020-02-18 19:17     ` Doron Behar
2020-02-19  9:35       ` Peter Stephenson

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=20200218163725.zdkiord4uaxmutsk@NUX \
    --to=doron.behar@gmail.com \
    --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).