Make completions work with Bash alias (#1035)

This commit is contained in:
Kurt Wolf 2021-12-01 22:38:57 -05:00 committed by GitHub
parent 762c461780
commit f70b6711a2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 5 deletions

View File

@ -1750,6 +1750,12 @@ Tools that pair nicely with `just` include:
For lightning-fast command running, put `alias j=just` in your shell's configuration file. For lightning-fast command running, put `alias j=just` in your shell's configuration file.
In `bash`, the aliased command may not keep the shell completion functionality described in the next section. Add the following line to your `.bashrc` to use the same completion function as `just` for your aliased command:
```sh
complete -F _just -o bashdefault -o default j
```
=== Shell Completion Scripts === Shell Completion Scripts
Shell completion scripts for Bash, Zsh, Fish, PowerShell, and Elvish are available in the link:completions[] directory. Please refer to your shell's documentation for how to install them. Shell completion scripts for Bash, Zsh, Fish, PowerShell, and Elvish are available in the link:completions[] directory. Please refer to your shell's documentation for how to install them.

View File

@ -9,7 +9,7 @@ _just() {
for i in ${COMP_WORDS[@]} for i in ${COMP_WORDS[@]}
do do
case "${i}" in case "${i}" in
just) "$1")
cmd="just" cmd="just"
;; ;;

View File

@ -156,12 +156,13 @@ pub(crate) const POWERSHELL_COMPLETION_REPLACEMENTS: &[(&str, &str)] = &[(
Sort-Object -Property ListItemText"#, Sort-Object -Property ListItemText"#,
)]; )];
pub(crate) const BASH_COMPLETION_REPLACEMENTS: &[(&str, &str)] = &[( pub(crate) const BASH_COMPLETION_REPLACEMENTS: &[(&str, &str)] = &[
r#" if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then (
r#" if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0 return 0
fi"#, fi"#,
r#" if [[ ${cur} == -* ]] ; then r#" if [[ ${cur} == -* ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0 return 0
elif [[ ${COMP_CWORD} -eq 1 ]]; then elif [[ ${COMP_CWORD} -eq 1 ]]; then
@ -171,4 +172,6 @@ pub(crate) const BASH_COMPLETION_REPLACEMENTS: &[(&str, &str)] = &[(
return 0 return 0
fi fi
fi"#, fi"#,
)]; ),
(r#" just)"#, r#" "$1")"#),
];