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.
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 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[@]}
do
case "${i}" in
just)
"$1")
cmd="just"
;;

View File

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