diff --git a/plugins/available/alias-completion.plugin.bash b/plugins/available/alias-completion.plugin.bash index 349877e6..5e0ea7fe 100644 --- a/plugins/available/alias-completion.plugin.bash +++ b/plugins/available/alias-completion.plugin.bash @@ -71,7 +71,7 @@ function alias_completion { # with the last word in the unaliased form, i.e., # alias_cmd + ' ' + alias_args. if [[ \$COMP_LINE == \"\$prec_word \$compl_word\" ]]; then - prec_word=\"$alias_cmd $alias_args\" + prec_word='$alias_cmd $alias_args' prec_word=\${prec_word#* } fi (( COMP_CWORD += ${#alias_arg_words[@]} )) diff --git a/test/plugins/alias-completion.plugin.bats b/test/plugins/alias-completion.plugin.bats new file mode 100644 index 00000000..08efb1ff --- /dev/null +++ b/test/plugins/alias-completion.plugin.bats @@ -0,0 +1,19 @@ +#!/usr/bin/env bats + +load ../test_helper +load ../../lib/composure +load ../../completion/available/git.completion + +@test "alias-completion: See that aliases with double quotes and brackets do not break the plugin" { + alias gtest="git log --graph --pretty=format:'%C(bold)%h%Creset%C(magenta)%d%Creset %s %C(yellow)<%an> %C(cyan)(%cr)%Creset' --abbrev-commit --date=relative" + load ../../plugins/available/alias-completion.plugin + + assert_success +} + +@test "alias-completion: See that aliases with single quotes and brackets do not break the plugin" { + alias gtest='git log --graph --pretty=format:"%C(bold)%h%Creset%C(magenta)%d%Creset %s %C(yellow)<%an> %C(cyan)(%cr)%Creset" --abbrev-commit --date=relative' + load ../../plugins/available/alias-completion.plugin + + assert_success +}