#578: allow aliases to work with completions

This commit is contained in:
Rajat Jindal 2017-11-29 14:37:41 -08:00
parent 1be1d2841c
commit 1fa4fb4d3b

View file

@ -219,7 +219,7 @@ __handle_command()
next_command="_${last_command}_${words[c]//:/__}" next_command="_${last_command}_${words[c]//:/__}"
else else
if [[ $c -eq 0 ]]; then if [[ $c -eq 0 ]]; then
next_command="_$(basename "${words[c]//:/__}")" next_command="_root_command"
else else
next_command="_${words[c]//:/__}" next_command="_${words[c]//:/__}"
fi fi
@ -240,7 +240,7 @@ __handle_word()
__handle_flag __handle_flag
elif __contains_word "${words[c]}" "${commands[@]}"; then elif __contains_word "${words[c]}" "${commands[@]}"; then
__handle_command __handle_command
elif [[ $c -eq 0 ]] && __contains_word "$(basename "${words[c]}")" "${commands[@]}"; then elif [[ $c -eq 0 ]]; then
__handle_command __handle_command
else else
__handle_noun __handle_noun
@ -452,7 +452,13 @@ func gen(buf *bytes.Buffer, cmd *Command) {
commandName := cmd.CommandPath() commandName := cmd.CommandPath()
commandName = strings.Replace(commandName, " ", "_", -1) commandName = strings.Replace(commandName, " ", "_", -1)
commandName = strings.Replace(commandName, ":", "__", -1) commandName = strings.Replace(commandName, ":", "__", -1)
buf.WriteString(fmt.Sprintf("_%s()\n{\n", commandName))
if cmd.Root() == cmd {
buf.WriteString(fmt.Sprint("_root_command()\n{\n"))
} else {
buf.WriteString(fmt.Sprintf("_%s()\n{\n", commandName))
}
buf.WriteString(fmt.Sprintf(" last_command=%q\n", commandName)) buf.WriteString(fmt.Sprintf(" last_command=%q\n", commandName))
writeCommands(buf, cmd) writeCommands(buf, cmd)
writeFlags(buf, cmd) writeFlags(buf, cmd)