From 34dbe3b3a8d090e1c2a50c6a10b7e6ecc6e62e7c Mon Sep 17 00:00:00 2001 From: Vladimir Zhelezov Date: Mon, 14 Dec 2020 04:50:28 +0100 Subject: [PATCH] Use compopt -o nospace only for a query prefix Similarly to long options treatment, suspend space only when completing what looks like a query or account prefix i.e. something ending with a colon (:). --- shell-completion/hledger-completion.bash | 7 +++++-- shell-completion/hledger-completion.bash.m4 | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/shell-completion/hledger-completion.bash b/shell-completion/hledger-completion.bash index 93333f75b..274d85808 100644 --- a/shell-completion/hledger-completion.bash +++ b/shell-completion/hledger-completion.bash @@ -97,8 +97,6 @@ _hledger_completion_function() { esac # Offer query filters and accounts for the rest - # Do not sort. Keep accounts and query filters grouped separately - compopt -o nosort -o nospace _hledger_compreply "$(_hledger_compgen "$_hledger_complist_query_filters")" if [[ -z $cur ]]; then _hledger_compreply_append "$( @@ -110,6 +108,11 @@ _hledger_completion_function() { )" fi + # Suspend space on completion of query prefix + # Do not sort, keep accounts and query filters grouped separately + [[ ${COMPREPLY[0]} == *: ]] && compopt -o nospace + compopt -o nosort + return 0 } diff --git a/shell-completion/hledger-completion.bash.m4 b/shell-completion/hledger-completion.bash.m4 index f28f11048..9d0d8538f 100644 --- a/shell-completion/hledger-completion.bash.m4 +++ b/shell-completion/hledger-completion.bash.m4 @@ -97,8 +97,6 @@ _hledger_completion_function() { esac # Offer query filters and accounts for the rest - # Do not sort. Keep accounts and query filters grouped separately - compopt -o nosort -o nospace _hledger_compreply "$(_hledger_compgen "$_hledger_complist_query_filters")" if [[ -z $cur ]]; then _hledger_compreply_append "$( @@ -110,6 +108,11 @@ _hledger_completion_function() { )" fi + # Suspend space on completion of query prefix + # Do not sort, keep accounts and query filters grouped separately + [[ ${COMPREPLY[0]} == *: ]] && compopt -o nospace + compopt -o nosort + return 0 }