diff --git a/shell-completion/hledger-completion.bash b/shell-completion/hledger-completion.bash index d535df449..fb5f3b36d 100644 --- a/shell-completion/hledger-completion.bash +++ b/shell-completion/hledger-completion.bash @@ -88,9 +88,26 @@ _hledger_completion_function() { } +_hledger_extension_completion_function() { + declare cmd=$1 + + # Change parameters and arguments and call the + # normal hledger completion function. + declare extensionName=${cmd#*-} + export -a COMP_WORDS=( "hledger" "$extensionName" "${COMP_WORDS[@]:1}" ) + #echo; echo "debug: ${COMP_WORDS[@]}" + shift + _hledger_completion_function "hledger" "$@" +} + # Register completion function for hledger: complete -F _hledger_completion_function hledger +# Register complete functions for hledger extensions: +complete -F _hledger_extension_completion_function hledger-ui +complete -F _hledger_extension_completion_function hledger-web +complete -F _hledger_extension_completion_function hledger-api + # Include lists of commands and options generated by the Makefile using the # m4 macro processor. # Included files must have exactly one newline at EOF to prevent weired errors. diff --git a/shell-completion/hledger-completion.bash.m4 b/shell-completion/hledger-completion.bash.m4 index 5b0db1507..2119ffd9e 100644 --- a/shell-completion/hledger-completion.bash.m4 +++ b/shell-completion/hledger-completion.bash.m4 @@ -88,9 +88,26 @@ _hledger_completion_function() { } +_hledger_extension_completion_function() { + declare cmd=$1 + + # Change parameters and arguments and call the + # normal hledger completion function. + declare extensionName=${cmd#*-} + export -a COMP_WORDS=( "hledger" "$extensionName" "${COMP_WORDS[@]:1}" ) + #echo; echo "debug: ${COMP_WORDS[@]}" + shift + _hledger_completion_function "hledger" "$@" +} + # Register completion function for hledger: complete -F _hledger_completion_function hledger +# Register completion functions for hledger extensions: +complete -F _hledger_extension_completion_function hledger-ui +complete -F _hledger_extension_completion_function hledger-web +complete -F _hledger_extension_completion_function hledger-api + # Include lists of commands and options generated by the Makefile using the # m4 macro processor. # Included files must have exactly one newline at EOF to prevent weired errors.