Skip to content

Commit

Permalink
Merge pull request #671 from kidonng/patch-1
Browse files Browse the repository at this point in the history
Improve fish widget code
  • Loading branch information
denisidoro authored Jan 17, 2022
2 parents 153d081 + 462a553 commit b556808
Showing 1 changed file with 24 additions and 45 deletions.
69 changes: 24 additions & 45 deletions shell/navi.plugin.fish
Original file line number Diff line number Diff line change
@@ -1,50 +1,29 @@
function __call_navi
navi --print
end

function navi-widget -d "Show cheat sheets"
begin
set ttysettings (stty -g)
stty sane
__call_navi | perl -pe 'chomp if eof' | read -lz result
and commandline -- $result

stty $ttysettings
end
commandline -f repaint
end

# set -g navi_last_cmd ""

function smart_replace
set -l current_process (commandline -p)

if [ $current_process = "" ]
commandline -p (navi --print)
commandline -f repaint
else
set -l best_match (navi --print --best-match --query $current_process)

if not [ $best_match > /dev/null ];
commandline -p $current_process
commandline -f repaint
return
function _navi_smart_replace
set -l current_process (commandline -p | string trim)

if test -z "$current_process"
commandline -i (navi --print)
else
set -l best_match (navi --print --best-match --query "$current_process")

if not test "$best_match" >/dev/null
return
end

if test -z "$best_match"
commandline -p (navi --print --query "$current_process")
else if test "$current_process" != "$best_match"
commandline -p $best_match
else
commandline -p (navi --print --query "$current_process")
end
end

if [ $best_match = "" ]
commandline -p (navi --print --query $current_process)
commandline -f repaint
else if [ $current_process != $best_match ]
commandline -p $best_match
commandline -f repaint
else if [ $current_process = $best_match ]
commandline -p (navi --print --query $current_process)
commandline -f repaint
end
end
commandline -f repaint
end

bind \cg smart_replace
if bind -M insert > /dev/null 2>&1
bind -M insert \cg smart_replace
if test $fish_key_bindings = fish_default_key_bindings
bind \cg _navi_smart_replace
else
bind -M insert \cg _navi_smart_replace
end

0 comments on commit b556808

Please sign in to comment.