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 anything? Jörg -- 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
;;
target)
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
else
--
2.29.2
Attachment:
signature.asc
Description: PGP signature