mirror of
https://github.com/prdlk/dotfiles.git
synced 2026-11-04 11:47:37 +00:00
18 lines
936 B
Fish
18 lines
936 B
Fish
function _pj_bind_down --description "down arrow: pj on an idle empty prompt, else the preset down-or-search"
|
|||
|
|
# Mirror of atuin's up binding (atuin owns up, this owns down). Everything
|
||
|
|
# that legitimately needs the arrow keys keeps them:
|
||
|
|
# - non-empty buffer → multiline cursor movement / forward history search
|
||
|
|
# - paging mode → tab-completion pager navigation (tab on an empty
|
||
|
|
# line opens the pager with an empty buffer)
|
||
|
|
# - search mode → history-search navigation
|
||
|
|
set -l buf (commandline | string collect)
|
||
|
|
if test -n "$buf"; or commandline --paging-mode; or commandline --search-mode
|
||
|
|
commandline -f down-or-search
|
||
|
|
return
|
||
|
|
end
|
||
|
|
|
||
|
|
# PJ_QUIET keeps pj silent when the tree has no package.json, so down is a
|
||
|
|
# no-op outside JS projects instead of printing an error on every press.
|
||
|
|
PJ_QUIET=1 pj
|
||
|
|
commandline -f repaint
|
||
|
|
end
|