completion: implement and use --list-cmds=main,others
This is part of the effort to break down and provide commands by category in machine-readable form. This could be helpful later on when completion script switches to use --list-cmds for selecting completable commands. It would be much easier for the user to choose to complete _all_ commands instead of the default selection by passing different values to --list-cmds in git-completino.bash. While at there, replace "git help -a" in git-completion.bash with --list-cmds since it's better suited for this task. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
e5d7a61953
commit
6bb2dc0b94
32
help.c
32
help.c
@ -297,6 +297,38 @@ void list_common_cmds_help(void)
|
||||
print_cmd_by_category(common_categories);
|
||||
}
|
||||
|
||||
void list_all_main_cmds(struct string_list *list)
|
||||
{
|
||||
struct cmdnames main_cmds, other_cmds;
|
||||
int i;
|
||||
|
||||
memset(&main_cmds, 0, sizeof(main_cmds));
|
||||
memset(&other_cmds, 0, sizeof(other_cmds));
|
||||
load_command_list("git-", &main_cmds, &other_cmds);
|
||||
|
||||
for (i = 0; i < main_cmds.cnt; i++)
|
||||
string_list_append(list, main_cmds.names[i]->name);
|
||||
|
||||
clean_cmdnames(&main_cmds);
|
||||
clean_cmdnames(&other_cmds);
|
||||
}
|
||||
|
||||
void list_all_other_cmds(struct string_list *list)
|
||||
{
|
||||
struct cmdnames main_cmds, other_cmds;
|
||||
int i;
|
||||
|
||||
memset(&main_cmds, 0, sizeof(main_cmds));
|
||||
memset(&other_cmds, 0, sizeof(other_cmds));
|
||||
load_command_list("git-", &main_cmds, &other_cmds);
|
||||
|
||||
for (i = 0; i < other_cmds.cnt; i++)
|
||||
string_list_append(list, other_cmds.names[i]->name);
|
||||
|
||||
clean_cmdnames(&main_cmds);
|
||||
clean_cmdnames(&other_cmds);
|
||||
}
|
||||
|
||||
int is_in_cmdlist(struct cmdnames *c, const char *s)
|
||||
{
|
||||
int i;
|
||||
|
||||
Reference in New Issue
Block a user