mirror of
https://github.com/youwen5/nixos.git
synced 2025-02-23 04:01:12 -08:00
33 lines
891 B
Text
33 lines
891 B
Text
|
let fish_completer = {|spans|
|
||
|
fish --command $'complete "--do-complete=($spans | str join " ")"'
|
||
|
| from tsv --flexible --noheaders --no-infer
|
||
|
| rename value description
|
||
|
}
|
||
|
|
||
|
let zoxide_completer = {|spans|
|
||
|
$spans | skip 1 | zoxide query -l ...$in | lines | where {|x| $x != $env.PWD}
|
||
|
}
|
||
|
|
||
|
# This completer will use fish by default
|
||
|
let external_completer = {|spans|
|
||
|
let expanded_alias = scope aliases
|
||
|
| where name == $spans.0
|
||
|
| get -i 0.expansion
|
||
|
|
||
|
let spans = if $expanded_alias != null {
|
||
|
$spans
|
||
|
| skip 1
|
||
|
| prepend ($expanded_alias | split row ' ' | take 1)
|
||
|
} else {
|
||
|
$spans
|
||
|
}
|
||
|
|
||
|
match $spans.0 {
|
||
|
# use zoxide completions for zoxide commands
|
||
|
__zoxide_z | __zoxide_zi => $zoxide_completer
|
||
|
_ => $fish_completer
|
||
|
} | do $in $spans
|
||
|
}
|
||
|
|
||
|
$env.config.completions.external.completer = $external_completer
|