Provide completions for Nushell
This commit is contained in:
parent
ee8bbe57d3
commit
df52401611
|
|
@ -55,29 +55,63 @@ export-env {
|
||||||
# When using zoxide with --no-cmd, alias these internal functions as desired.
|
# When using zoxide with --no-cmd, alias these internal functions as desired.
|
||||||
#
|
#
|
||||||
|
|
||||||
# Jump to a directory using only keywords.
|
# For hiding the "nu-complete zoxide path" command
|
||||||
def --env --wrapped __zoxide_z [...rest: string] {
|
module zoxide-commands {
|
||||||
let path = match $rest {
|
def "nu-complete zoxide path" [context: string] {
|
||||||
[] => {'~'},
|
let parts = $context | str trim | split row " " | skip 1 | each { str downcase }
|
||||||
[ '-' ] => {'-'},
|
let completions = (
|
||||||
[ $arg ] if ($arg | path expand | path type) == 'dir' => {$arg}
|
zoxide query --list --exclude $env.PWD -- ...$parts
|
||||||
_ => {
|
| lines
|
||||||
zoxide query --exclude $env.PWD -- ...$rest | str trim -r -c "\n"
|
| each { |dir|
|
||||||
|
if ($parts | length) <= 1 {
|
||||||
|
$dir
|
||||||
|
} else {
|
||||||
|
let dir_lower = $dir | str downcase
|
||||||
|
let rem_start = $parts | drop 1 | reduce --fold 0 { |part, rem_start|
|
||||||
|
($dir_lower | str index-of --range $rem_start.. $part) + ($part | str length)
|
||||||
|
}
|
||||||
|
{
|
||||||
|
value: ($dir | str substring $rem_start..),
|
||||||
|
description: $dir
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
{
|
||||||
|
options: {
|
||||||
|
sort: false,
|
||||||
|
completion_algorithm: substring,
|
||||||
|
case_sensitive: false,
|
||||||
|
},
|
||||||
|
completions: $completions,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cd $path
|
|
||||||
{%- if echo %}
|
# Jump to a directory using only keywords.
|
||||||
echo $env.PWD
|
export def --env --wrapped __zoxide_z [...rest: string@"nu-complete zoxide path"] {
|
||||||
{%- endif %}
|
let path = match $rest {
|
||||||
|
[] => {'~'},
|
||||||
|
[ '-' ] => {'-'},
|
||||||
|
[ $arg ] if ($arg | path expand | path type) == 'dir' => {$arg}
|
||||||
|
_ => {
|
||||||
|
zoxide query --exclude $env.PWD -- ...$rest | str trim -r -c "\n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cd $path
|
||||||
|
{%- if echo %}
|
||||||
|
echo $env.PWD
|
||||||
|
{%- endif %}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Jump to a directory using interactive search.
|
||||||
|
export def --env --wrapped __zoxide_zi [...rest:string@"nu-complete zoxide path"] {
|
||||||
|
cd $'(zoxide query --interactive -- ...$rest | str trim -r -c "\n")'
|
||||||
|
{%- if echo %}
|
||||||
|
echo $env.PWD
|
||||||
|
{%- endif %}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Jump to a directory using interactive search.
|
use zoxide-commands *
|
||||||
def --env --wrapped __zoxide_zi [...rest:string] {
|
|
||||||
cd $'(zoxide query --interactive -- ...$rest | str trim -r -c "\n")'
|
|
||||||
{%- if echo %}
|
|
||||||
echo $env.PWD
|
|
||||||
{%- endif %}
|
|
||||||
}
|
|
||||||
|
|
||||||
{{ section }}
|
{{ section }}
|
||||||
# Commands for zoxide. Disable these using --no-cmd.
|
# Commands for zoxide. Disable these using --no-cmd.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue