Skip to content

Commit

Permalink
Merge pull request #655 from DevAtDawn/master
Browse files Browse the repository at this point in the history
Add “smart replace” functionality to the fish shell widget
  • Loading branch information
denisidoro authored Dec 19, 2021
2 parents d672d62 + e7dea3e commit 91783f6
Showing 1 changed file with 32 additions and 4 deletions.
36 changes: 32 additions & 4 deletions shell/navi.plugin.fish
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
#!/usr/bin/env fish

function __call_navi
navi --print
end
Expand All @@ -16,7 +14,37 @@ function navi-widget -d "Show cheat sheets"
commandline -f repaint
end

bind \cg navi-widget
# 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
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
end

bind \cg smart_replace
if bind -M insert > /dev/null 2>&1
bind -M insert \cg navi-widget
bind -M insert \cg smart_replace
end

0 comments on commit 91783f6

Please sign in to comment.