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.
next prev parent 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).