From c7af2e68571317409fe3ea8c2618a2045cf05741 Mon Sep 17 00:00:00 2001 From: Marc Khouzam Date: Thu, 26 Nov 2020 22:17:16 -0500 Subject: [PATCH] Allow fish comp to support trailing empty lines Some programs may output extra empty lines after the directive. Those lines must be ignored for fish shell completion to work. zsh and bash are not impacted. Signed-off-by: Marc Khouzam --- fish_completions.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/fish_completions.go b/fish_completions.go index eaae9bca86..c942de9630 100644 --- a/fish_completions.go +++ b/fish_completions.go @@ -53,6 +53,19 @@ function __%[1]s_perform_completion __%[1]s_debug "Calling $requestComp" set results (eval $requestComp 2> /dev/null) + + # Some programs may output extra empty lines after the directive. + # Let's ignore them or else it will break completion. + # Ref: https://github.com/spf13/cobra/issues/1279 + for line in $results[-1..1] + if test (string trim $line) = "" + # Found an empty line, remove it + set results $results[1..-2] + else + # Found non-empty line, we have our proper output + break + end + end set comps $results[1..-2] set directiveLine $results[-1]