Re: [PATCH v2 5/5] completion: add an use __git_compute_second_level_config_vars_for_section
On Mon, Jan 29, 2024 at 01:28:01PM +0000, Philippe Blain via GitGitGadget wrote:
> From: Philippe Blain <levraiphilippeblain@gmail.com>
Show 11 quoted lines
> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index 2934ceb7637..0e8fd63bfdb 100644
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -2605,6 +2612,15 @@ __git_compute_first_level_config_vars_for_section ()
> printf -v "__git_first_level_config_vars_for_section_${section}" %s "$(echo "$__git_config_vars" | grep -E "^${section}\.[a-z]" | awk -F. '{print $2}')"
> }
>
> +__git_compute_second_level_config_vars_for_section ()
> +{
> + section="$1"This should be `local section`, as well.
Show 24 quoted lines
> + __git_compute_config_vars_all
> + local this_section="__git_second_level_config_vars_for_section_${section}"
> + test -n "${!this_section}" ||
> + printf -v "__git_second_level_config_vars_for_section_${section}" %s "$(echo "$__git_config_vars_all" | grep -E "^${section}\.<" | awk -F. '{print $3}')"
> +}
> +
> __git_config_sections=
> __git_compute_config_sections ()
> {
> @@ -2749,10 +2765,13 @@ __git_complete_config_variable_name ()
> done
>
> case "$cur_" in
> - branch.*.*)
> + branch.*.*|guitool.*.*|difftool.*.*|man.*.*|mergetool.*.*|remote.*.*|submodule.*.*|url.*.*)
> local pfx="${cur_%.*}."
> cur_="${cur_##*.}"
> - __gitcomp "remote pushRemote merge mergeOptions rebase" "$pfx" "$cur_" "$sfx"
> + local section="${pfx%.*.}"
> + __git_compute_second_level_config_vars_for_section "${section}"
> + local this_section="__git_second_level_config_vars_for_section_${section}"
> + __gitcomp "${!this_section}" "$pfx" "$cur_" "$sfx"
> return
> ;;Show 8 quoted lines
> diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh
> index f28d8f531b7..24ff786b273 100755
> --- a/t/t9902-completion.sh
> +++ b/t/t9902-completion.sh
> @@ -2593,6 +2593,16 @@ test_expect_success 'git config - variable name - __git_compute_first_level_conf
> submodule.recurse Z
> EOF
> '
Show 10 quoted lines
> +test_expect_success 'git config - variable name - __git_compute_second_level_config_vars_for_section' '
> + test_completion "git config branch.main." <<-\EOF
> + branch.main.description Z
> + branch.main.remote Z
> + branch.main.pushRemote Z
> + branch.main.merge Z
> + branch.main.mergeOptions Z
> + branch.main.rebase Z
> + EOF
> +'