1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2024-09-19 10:50:24 -04:00
nix/misc/bash/completion.sh

30 lines
929 B
Bash
Raw Normal View History

2020-05-10 14:32:21 -04:00
function _complete_nix {
2020-05-11 15:37:53 -04:00
local -a words
local cword cur
_get_comp_words_by_ref -n ':=&' words cword cur
2020-05-10 15:35:07 -04:00
local have_type
2020-05-10 14:32:21 -04:00
while IFS= read -r line; do
local completion=${line%% *}
2020-05-10 15:35:07 -04:00
if [[ -z $have_type ]]; then
have_type=1
if [[ $completion == filenames ]]; then
2020-05-10 15:35:07 -04:00
compopt -o filenames
elif [[ $completion == attrs ]]; then
compopt -o nospace
2020-05-10 15:35:07 -04:00
fi
2024-08-01 17:37:45 -04:00
continue
2020-05-10 15:35:07 -04:00
fi
2024-08-01 17:37:45 -04:00
if [[ "${cur}" =~ "=" ]]; then
# drop everything up to the first =. if a = is included, bash assumes this to be
# an arg=value argument and the completion gets mangled (see #11208)
completion="${completion#*=}"
fi
COMPREPLY+=("${completion}")
done < <(NIX_GET_COMPLETIONS=$cword "${words[@]}" 2>/dev/null)
2020-05-11 15:37:53 -04:00
__ltrim_colon_completions "$cur"
2020-05-10 14:32:21 -04:00
}
complete -F _complete_nix nix