diff --git a/shell-completion/hledger-completion.bash b/shell-completion/hledger-completion.bash index 2cd85e906..f53e385de 100644 --- a/shell-completion/hledger-completion.bash +++ b/shell-completion/hledger-completion.bash @@ -24,10 +24,8 @@ _hledger_completion_function() { compopt -o filenames local subcommand - local subcommandOptions local i - - for (( i=1; i<${#words[@]}; i++ )); do + for ((i=1; i<${#words[@]}; i++)); do subcommand=${words[i]} if ! grep -Fxqe "$subcommand" <<< "$_hledger_complist_commands"; then subcommand= @@ -48,17 +46,6 @@ _hledger_completion_function() { return 0 fi fi - if [[ $cur == -* ]]; then - # Replace dashes with underscores and use indirect expansion - subcommandOptions=_hledger_complist_options_${subcommand//-/_} - _hledger_compreply "$(_hledger_compgen "${!subcommandOptions}")" - - # Suspend space on completion of long options requiring an argument - [[ ${COMPREPLY[0]} == --*= ]] && compopt -o nospace - compopt +o filenames - - return 0 - fi break done @@ -79,6 +66,19 @@ _hledger_completion_function() { return 0 fi + if [[ $cur == -* ]]; then + local subcommandOptions + # Replace dashes with underscores and use indirect expansion + subcommandOptions=_hledger_complist_options_${subcommand//-/_} + _hledger_compreply "$(_hledger_compgen "${!subcommandOptions}")" + + # Suspend space on completion of long options requiring an argument + [[ ${COMPREPLY[0]} == --*= ]] && compopt -o nospace + compopt +o filenames + + return 0 + fi + # Query completion _hledger_compreply_query && return diff --git a/shell-completion/hledger-completion.bash.m4 b/shell-completion/hledger-completion.bash.m4 index 39375842b..2c30c8cf9 100644 --- a/shell-completion/hledger-completion.bash.m4 +++ b/shell-completion/hledger-completion.bash.m4 @@ -24,10 +24,8 @@ _hledger_completion_function() { compopt -o filenames local subcommand - local subcommandOptions local i - - for (( i=1; i<${#words[@]}; i++ )); do + for ((i=1; i<${#words[@]}; i++)); do subcommand=${words[i]} if ! grep -Fxqe "$subcommand" <<< "$_hledger_complist_commands"; then subcommand= @@ -48,17 +46,6 @@ _hledger_completion_function() { return 0 fi fi - if [[ $cur == -* ]]; then - # Replace dashes with underscores and use indirect expansion - subcommandOptions=_hledger_complist_options_${subcommand//-/_} - _hledger_compreply "$(_hledger_compgen "${!subcommandOptions}")" - - # Suspend space on completion of long options requiring an argument - [[ ${COMPREPLY[0]} == --*= ]] && compopt -o nospace - compopt +o filenames - - return 0 - fi break done @@ -79,6 +66,19 @@ _hledger_completion_function() { return 0 fi + if [[ $cur == -* ]]; then + local subcommandOptions + # Replace dashes with underscores and use indirect expansion + subcommandOptions=_hledger_complist_options_${subcommand//-/_} + _hledger_compreply "$(_hledger_compgen "${!subcommandOptions}")" + + # Suspend space on completion of long options requiring an argument + [[ ${COMPREPLY[0]} == --*= ]] && compopt -o nospace + compopt +o filenames + + return 0 + fi + # Query completion _hledger_compreply_query && return