fix(tmuxinator): better autocompletion
This commit is contained in:
@@ -35,20 +35,26 @@ function mx() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function get_mux_sessions() {
|
function get_mux_sessions() {
|
||||||
ALL_PROJECTS=$(tmuxinator list | grep -v tmuxinator)
|
tmuxinator list | grep -v tmuxinator | tr ' ' '\n' | grep -v '^$'
|
||||||
echo $ALL_PROJECTS
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function _mx_autocomplete() {
|
function _mx_autocomplete() {
|
||||||
local cur
|
local -a projects files dirs
|
||||||
cur="${COMP_WORDS[COMP_CWORD]}"
|
local expl
|
||||||
local projects="$(get_mux_sessions)"
|
|
||||||
COMPREPLY=()
|
# Get tmuxinator projects
|
||||||
while IFS= read -r line; do
|
projects=(${(f)"$(get_mux_sessions)"})
|
||||||
COMPREPLY+=("$line")
|
|
||||||
done < <(
|
# Get files and directories with proper completion
|
||||||
{ compgen -W "$projects" -- "$cur"; compgen -f -- "$cur"; } | sort -u
|
_alternative \
|
||||||
)
|
'projects:tmuxinator projects:compadd -a projects' \
|
||||||
|
'files:files:_files'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Register the completion function for zsh
|
||||||
|
if [[ -n ${ZSH_VERSION-} ]]; then
|
||||||
|
compdef _mx_autocomplete mx
|
||||||
|
else
|
||||||
|
# Fallback for bash
|
||||||
complete -f -F _mx_autocomplete -o default mx
|
complete -f -F _mx_autocomplete -o default mx
|
||||||
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user