Skip to content

Commit

Permalink
[#1526] Fix use of compinit clobbering existing completions
Browse files Browse the repository at this point in the history
  • Loading branch information
bherw authored and remkop committed Jan 17, 2022
1 parent 8e6c098 commit 7da86ec
Show file tree
Hide file tree
Showing 7 changed files with 40 additions and 10 deletions.
5 changes: 4 additions & 1 deletion src/main/java/picocli/AutoComplete.java
Original file line number Diff line number Diff line change
Expand Up @@ -359,7 +359,10 @@ private static class CommandDescriptor {
" alias compopt=complete\n" +
"\n" +
" # Enable bash completion in zsh (see [7])\n" +
" autoload -U +X compinit && compinit\n" +
" # Only initialize completions module once to avoid unregistering existing completions.\n" +
" if ! type compdef > /dev/null; then\n" +
" autoload -U +X compinit && compinit\n" +
" fi\n" +
" autoload -U +X bashcompinit && bashcompinit\n" +
"fi\n" +
"\n" +
Expand Down
20 changes: 16 additions & 4 deletions src/test/java/picocli/AutoCompleteTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -687,7 +687,10 @@ private String expectedCompletionScriptForAutoCompleteApp() {
" alias compopt=complete\n" +
"\n" +
" # Enable bash completion in zsh (see [7])\n" +
" autoload -U +X compinit && compinit\n" +
" # Only initialize completions module once to avoid unregistering existing completions.\n" +
" if ! type compdef > /dev/null; then\n" +
" autoload -U +X compinit && compinit\n" +
" fi\n" +
" autoload -U +X bashcompinit && bashcompinit\n" +
"fi\n" +
"\n" +
Expand Down Expand Up @@ -898,7 +901,10 @@ private String expectedCompletionScriptForNonDefault() {
" alias compopt=complete\n" +
"\n" +
" # Enable bash completion in zsh (see [7])\n" +
" autoload -U +X compinit && compinit\n" +
" # Only initialize completions module once to avoid unregistering existing completions.\n" +
" if ! type compdef > /dev/null; then\n" +
" autoload -U +X compinit && compinit\n" +
" fi\n" +
" autoload -U +X bashcompinit && bashcompinit\n" +
"fi\n" +
"\n" +
Expand Down Expand Up @@ -1457,7 +1463,10 @@ private String getCompletionScriptText(String cmdName) {
" alias compopt=complete\n" +
"\n" +
" # Enable bash completion in zsh (see [7])\n" +
" autoload -U +X compinit && compinit\n" +
" # Only initialize completions module once to avoid unregistering existing completions.\n" +
" if ! type compdef > /dev/null; then\n" +
" autoload -U +X compinit && compinit\n" +
" fi\n" +
" autoload -U +X bashcompinit && bashcompinit\n" +
"fi\n" +
"\n" +
Expand Down Expand Up @@ -1660,7 +1669,10 @@ private String getCompletionScriptTextWithHidden(String commandName) {
" alias compopt=complete\n" +
"\n" +
" # Enable bash completion in zsh (see [7])\n" +
" autoload -U +X compinit && compinit\n" +
" # Only initialize completions module once to avoid unregistering existing completions.\n" +
" if ! type compdef > /dev/null; then\n" +
" autoload -U +X compinit && compinit\n" +
" fi\n" +
" autoload -U +X bashcompinit && bashcompinit\n" +
"fi\n" +
"\n" +
Expand Down
5 changes: 4 additions & 1 deletion src/test/resources/bashify_completion.bash
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,10 @@ elif [ -n "$ZSH_VERSION" ]; then
alias compopt=complete

# Enable bash completion in zsh (see [7])
autoload -U +X compinit && compinit
# Only initialize completions module once to avoid unregistering existing completions.
if ! type compdef > /dev/null; then
autoload -U +X compinit && compinit
fi
autoload -U +X bashcompinit && bashcompinit
fi

Expand Down
5 changes: 4 additions & 1 deletion src/test/resources/basic.bash
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,10 @@ elif [ -n "$ZSH_VERSION" ]; then
alias compopt=complete

# Enable bash completion in zsh (see [7])
autoload -U +X compinit && compinit
# Only initialize completions module once to avoid unregistering existing completions.
if ! type compdef > /dev/null; then
autoload -U +X compinit && compinit
fi
autoload -U +X bashcompinit && bashcompinit
fi

Expand Down
5 changes: 4 additions & 1 deletion src/test/resources/hyphenated_completion.bash
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,10 @@ elif [ -n "$ZSH_VERSION" ]; then
alias compopt=complete

# Enable bash completion in zsh (see [7])
autoload -U +X compinit && compinit
# Only initialize completions module once to avoid unregistering existing completions.
if ! type compdef > /dev/null; then
autoload -U +X compinit && compinit
fi
autoload -U +X bashcompinit && bashcompinit
fi

Expand Down
5 changes: 4 additions & 1 deletion src/test/resources/picocompletion-demo-help_completion.bash
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,10 @@ elif [ -n "$ZSH_VERSION" ]; then
alias compopt=complete

# Enable bash completion in zsh (see [7])
autoload -U +X compinit && compinit
# Only initialize completions module once to avoid unregistering existing completions.
if ! type compdef > /dev/null; then
autoload -U +X compinit && compinit
fi
autoload -U +X bashcompinit && bashcompinit
fi

Expand Down
5 changes: 4 additions & 1 deletion src/test/resources/picocompletion-demo_completion.bash
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,10 @@ elif [ -n "$ZSH_VERSION" ]; then
alias compopt=complete

# Enable bash completion in zsh (see [7])
autoload -U +X compinit && compinit
# Only initialize completions module once to avoid unregistering existing completions.
if ! type compdef > /dev/null; then
autoload -U +X compinit && compinit
fi
autoload -U +X bashcompinit && bashcompinit
fi

Expand Down

0 comments on commit 7da86ec

Please sign in to comment.