mirror of
https://github.com/youwen5/liminalOS.git
synced 2025-06-20 05:59:51 -07:00
47 lines
1.2 KiB
Text
47 lines
1.2 KiB
Text
let fish_completer = {|spans|
|
|
fish --command $'complete "--do-complete=($spans | str join " ")"'
|
|
| from tsv --flexible --noheaders --no-infer
|
|
| rename value description
|
|
| update value {
|
|
if ($in | path exists) {$'"($in | str replace "\"" "\\\"" )"'} else {$in}
|
|
}
|
|
}
|
|
|
|
# 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
|
|
_ => $fish_completer
|
|
} | do $in $spans
|
|
}
|
|
|
|
$env.config.completions.external.completer = $external_completer
|
|
|
|
def "nu-complete zoxide path" [context: string] {
|
|
let parts = $context | split row " " | skip 1
|
|
{
|
|
options: {
|
|
sort: false
|
|
completion_algorithm: prefix
|
|
positional: false
|
|
case_sensitive: false
|
|
}
|
|
completions: (zoxide query --list --exclude $env.PWD -- ...$parts | lines)
|
|
}
|
|
}
|
|
|
|
def --env --wrapped z [...rest: string@"nu-complete zoxide path"] {
|
|
__zoxide_z ...$rest
|
|
}
|