feat: Provide jump commands completion for nushell

Create completing function, wrapping zoxide query, and attach to jumping
commands arguments.
This commit is contained in:
Alessandro Candido 2025-04-26 00:13:32 +02:00
parent db14bdc2ff
commit 279f85ccec
No known key found for this signature in database
1 changed files with 19 additions and 2 deletions

View File

@ -55,8 +55,25 @@ export-env {
# When using zoxide with --no-cmd, alias these internal functions as desired.
#
# Provide suitable completion for zoxide jump commands
def zoxide_completer [context: string] {
let query = $context | split row " " | slice 1..
let matches = zoxide query -l ...$query | lines | where {|x| $x != $env.PWD}
let completions = $matches | if ($in | is-not-empty) { $in } else { null }
{
options: {
case_sensitive: false,
completion_algorithm: fuzzy,
positional: false,
sort: false,
},
completions: $completions
}
}
# Jump to a directory using only keywords.
def --env --wrapped __zoxide_z [...rest: string] {
def --env --wrapped __zoxide_z [...rest: string@zoxide_completer] {
let path = match $rest {
[] => {'~'},
[ '-' ] => {'-'},
@ -72,7 +89,7 @@ def --env --wrapped __zoxide_z [...rest: string] {
}
# Jump to a directory using interactive search.
def --env --wrapped __zoxide_zi [...rest:string] {
def --env --wrapped __zoxide_zi [...rest:string@zoxide_completer] {
cd $'(^zoxide query --interactive -- ...$rest | str trim -r -c "\n")'
{%- if echo %}
echo $env.PWD