zsh-users
 help / color / mirror / code / Atom feed
From: Bart Schaefer <schaefer@brasslantern.com>
To: zsh-users@zsh.org
Subject: Re: Zsh completion configuration
Date: Tue, 26 Feb 2013 08:05:45 -0800	[thread overview]
Message-ID: <130226080545.ZM4526@torch.brasslantern.com> (raw)
In-Reply-To: <CAHjjW155pdw4KTZkavVbJLKFR+eZxuTxTPQPgvocTb5-zyW5QQ@mail.gmail.com>

On Feb 25,  2:47pm, joe M wrote:
} 
} I am trying to figure out how to add "history-words" as a group within
} _complete, similar to aliases or functions.
} 
} But, I could not figure out what compadd does from the zsh source. Any
} thoughts on what compadd does, or, how I can add another tag to the
} list of tags suggested by _command_names?

Unless I'm misunderstanding your intent, you don't actually want to
change the tags from _command_names -- you just want to add another tag
that appears in completion output along with the _command_names tags?

To do this you want to replace the completer function for "-command-"
context.  By default this is the _autocd completer (which is only the
default because _autocd is the only file in the completion library that
begins with "#compdef -command-").

So first make yourself a little function patterned on _autocd:

    _history_or_autocd () {
      _history
      local ret=$?
      _autocd || return ret
    }

And then install it for the context:

    compdef _history_or_autocd -command-

To explain a bit further, the completers in the completer style are in
general attempted until one returns a zero (true, success) status, at
which point the set of possible matches is assumed to be finished.  To
merge the results of several completers you have to save the staus, try
the next one, and then return success if any of those completers was
successful.

If you instead wanted to complete history and only try the defaults if no
history words matched, you could have shortcut this as

    compdef '_history || _autocd' -command-

Of course whichever of these you choose has to happen after compinit is
run, otherwise _autocd will step on it when loaded.


  reply	other threads:[~2013-02-26 16:06 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-25 19:47 joe M
2013-02-26 16:05 ` Bart Schaefer [this message]
2013-02-27  0:41   ` joe M
2013-02-27  3:26     ` Bart Schaefer
2013-02-27 15:54       ` joe M

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=130226080545.ZM4526@torch.brasslantern.com \
    --to=schaefer@brasslantern.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).