Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: How to get all tagets for rake completion?

Peter Stephenson schrieb am Di 15. Dez, 17:12 (+0000):
> > On 15 December 2020 at 12:57 Jörg Sommer <joerg@xxxxxxxx> wrote:
> > I would like to get all targets for the completion of rake arguments. How
> > can I inject an argument to the targets query call or how to replace it? I
> > have to pass `-A` to *rake* to get the arguments for the completion.
> Frankly, your best bet is probably just to copy the distributed _rake
> function and adapt it, copying it to somewhere early in your $fpath.
> You'll see towards the end an extremely complicated line with "-sT" in
> the middle --- just change that to "-sTA".
> I have a feeling it might be possible to set a style so that the
> _call_program helper does something different for you, but I'm not
> sure there's any benefit in being too clever here.  The _rake completer
> doesn't change very often, I don't think.
> (This could be made a style for the _rake completer easily enough,
> in fact.)

What do you think about the attached commit? Is it fine or should I change


Was ist das bloß für eine Welt, in der es mehr Mut braucht ehrlich zu
weinen als Stärke vorzutäuschen?
From 640e40dc81833624281f5c146b514417f251b4c3 Mon Sep 17 00:00:00 2001
Message-Id: <640e40dc81833624281f5c146b514417f251b4c3.1608068274.git.joerg@xxxxxxxx>
From: =?UTF-8?q?J=C3=B6rg=20Sommer?= <joerg@xxxxxxxx>
Date: Tue, 15 Dec 2020 22:32:46 +0100
Subject: [PATCH] Completion/_rake: add zsytle for targets without description

`rake -T` shows only these targets having a description. But it might be
useful to see all. Allow this with the zsytle setting:

zstyle :completion::complete:rake:argument-rest all-targets true
 Completion/Unix/Command/_rake | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/Completion/Unix/Command/_rake b/Completion/Unix/Command/_rake
index 8814edaa5..88c25d7cf 100644
--- a/Completion/Unix/Command/_rake
+++ b/Completion/Unix/Command/_rake
@@ -37,7 +37,9 @@ case "$state" in
     local -a targets
-    targets=( ${${(f)"$(_call_program targets $words[1] -sT $opt_args[(I)(-N|--nosearch)] ${(kv)opt_args[(I)(-f|--rakefile)]} 2>/dev/null)"}/(#b)rake ([^ ]##) ##\# (*)/${${match[1]}//:/\\:}:${match[2]:l}} )
+    local all
+    zstyle -t ":completion:${curcontext}" all-targets && all=-A
+    targets=( ${${(f)"$(_call_program targets $words[1] $all -sT $opt_args[(I)(-N|--nosearch)] ${(kv)opt_args[(I)(-f|--rakefile)]} 2>/dev/null)"}/(#b)rake ([^ ]##) ##\# (*)/${${match[1]}//:/\\:}:${match[2]:l}} )
     if (( ! ${targets[(I)rake aborted!]} )) then
       _describe -t targets 'rake target' targets && ret=0

Attachment: signature.asc
Description: PGP signature

Messages sorted by: Reverse Date, Date, Thread, Author