git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 1/4] completion: introduce __gitcomp_subcommand

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 26, 2024, 17:26 UTC
Message-ID
<xmqqmsssngyz.fsf@gitster.g>
In-Reply-To
<8c902c53-815d-43c2-8ba9-8144d8884804@gmail.com>
Rubén Justo <rjusto@gmail.com> writes:
Show 20 quoted lines
> +# Completion for subcommands in commands that follow the syntax:
> +#
> +#    git <command> <subcommand>
> +#
> +# 1: List of possible completion words.
> +# Returns false if the current word is not a possible subcommand
> +# (possitioned after the command), or if no option is found in
> +# the list provided.
> +__gitcomp_subcommand ()
> +{
> +	local subcommands="$1"
> +
> +	if [ $cword -eq $(($__git_cmd_idx + 1)) ]; then
> +		__gitcomp "$subcommands"
> +
> +		test -n "$COMPREPLY"
> +	else
> +		false
> +	fi
> +}

I am not at all familiar with the code in this file, so treat this as a question from somebody who do not know the calling convention used around here.

This helper function clobbers what was in COMPREPLY[@] before calling it, from a caller's point of view. Is it a pattern that potential callers in this file should already find familiar, and they do not have to be reminded that they cannot rely on what they prepared in COMPREPLY to be preserved across a call into this function? Otherwise I would suggest mentioning it in the helpful comment before the function, but I cannot tell if such a comment is even needed by the intended audience, so...

Previous: Rubén JustoNext: Rubén Justo
Message 3 of 22 in “completion for git-reflog show”
  1. 0/4 completion for git-reflog showRubén Justo, Jan 26, 2024
  2. 1/4 completion: introduce __gitcomp_subcommandRubén Justo, Jan 26, 2024
  3. Junio C HamanoJan 26, 2024
  4. Rubén JustoJan 26, 2024
  5. Junio C HamanoJan 26, 2024
  6. 2/4 completion: introduce __git_find_subcommandRubén Justo, Jan 26, 2024
  7. Junio C HamanoJan 26, 2024
  8. Rubén JustoJan 27, 2024
  9. 3/4 completion: reflog with implicit "show"Rubén Justo, Jan 26, 2024
  10. Junio C HamanoJan 26, 2024
  11. Rubén JustoJan 26, 2024
  12. Junio C HamanoFeb 21, 2024
  13. Rubén JustoFeb 21, 2024
  14. Rubén JustoFeb 29, 2024
  15. Junio C HamanoFeb 29, 2024
  16. 4/4 completion: reflog show <log-options>Rubén Justo, Jan 26, 2024
  17. 0/5 completion for git-reflog showRubén Justo, Mar 2, 2024
  18. 1/5 completion: reflog with implicit "show"Rubén Justo, Mar 2, 2024
  19. 3/5 completion: reflog show <log-options>Rubén Justo, Mar 2, 2024
  20. 2/5 completion: introduce __git_find_subcommandRubén Justo, Mar 2, 2024
  21. 4/5 completion: factor out __git_resolve_builtinsRubén Justo, Mar 2, 2024
  22. 5/5 completion: reflog subcommands and optionsRubén Justo, Mar 2, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.