Ich versuche, die Abschluss-Widgets von zsh in meinen eigenen Skripten zu verwenden. An einem Punkt möchte ich Zugriff auf das Ergebnis jeder in zsh aktiven Fertigstellung haben, oder vielmehr möchte ich das Endergebnis der Abschlusskette erhalten.
function foo() {
do_unrelated_stuff()
# call zsh completion
comp_results=_main_complete_() # won't work like this, can only be called from within a completion function
if [[ "$#comp_results" -gt "0" ]]; then
# do something
echo "results:"
else
# do something else
echo "no results"
fi
}
Ich habe bereits darüber nachgedacht, eine benutzerdefinierte Abschlussfunktion zu erstellen, die nur aufruft
_main_complete
(oder welche Funktion auch immer geeignet ist) und die Ergebnisse in einer exportierten Variablen speichert, um sie anderen Funktionen zugänglich zu machen. Dies würde jedoch auch bedeuten, dass die benutzerdefinierte Vervollständigungsfunktion irgendwie aufgerufen wird - und ich weiß nicht wie. Ist es überhaupt möglich, "Zwischenergebnisse" zu erzielen, ohne die eigentliche Fertigstellung durchzuführen?
quelle
Valodim/zsh-capture-completion, as:command, use:capture.zsh, rename-to:capture.zsh