navi/shell/navi.plugin.elv
cherryblossom000 c082c09935
Update legacy syntax from Elvish widget
This commit updates the legacy assignment and lambda syntax from the Elvish widget so it works on v0.17 without deprecation errors. This commit also refactors some of the code so it's cleaner.
2022-01-13 21:34:55 +11:00

30 lines
704 B
Plaintext

use str
fn call-navi {
if (eq $edit:current-command '') {
var answer = (navi --print)
edit:replace-input $answer
} elif (not (str:contains-any $edit:current-command '|')) {
var answer = (navi --print --query $edit:current-command)
if (not-eq $answer '') {
edit:replace-input $answer
}
} else {
var @cmds query = (str:split '|' $edit:current-command)
var answer = (
if (eq $query '') {
navi --print
} else {
navi --print --query $query
}
)
if (not-eq $answer '') {
set cmds = [$@cmds $answer]
edit:replace-input (str:join '| ' $cmds)
}
}
}
set edit:insert:binding[Alt-h] = { call-navi >/dev/tty 2>&1 }