Don't fetch suggestions after copy-earlier-word

Like {up,down}-line-or-beginning-search, this widget relies on
`$LASTWIDGET` being set to function correctly on subsequent invocations.

When asynchronous suggestions are enabled, and the widget triggers a
suggestion to be fetched, `autosuggest-suggest` will be called and
$LASTWIDGET will be set to it.
This commit is contained in:
Henré Botha 2019-06-14 17:48:31 +02:00 committed by Eric Freese
parent 1912726460
commit 527fd17ffc
3 changed files with 25 additions and 0 deletions

View file

@ -27,6 +27,29 @@ context 'with asynchronous suggestions enabled' do
end end
end end
describe '`copy-earlier-word`' do
let(:before_sourcing) do
-> do
session.
run_command('autoload -Uz copy-earlier-word').
run_command('zle -N copy-earlier-word').
run_command('bindkey "^N" copy-earlier-word')
end
end
it 'should cycle through previous words in the buffer' do
session.clear_screen
session.send_string('foo bar baz')
sleep 0.5
session.send_keys('C-n')
wait_for { session.content }.to eq('foo bar bazbaz')
session.send_keys('C-n')
wait_for { session.content }.to eq('foo bar bazbar')
session.send_keys('C-n')
wait_for { session.content }.to eq('foo bar bazfoo')
end
end
describe 'pressing ^C after fetching a suggestion' do describe 'pressing ^C after fetching a suggestion' do
before do before do
skip 'Workaround does not work below v5.0.8' if session.zsh_version < Gem::Version.new('5.0.8') skip 'Workaround does not work below v5.0.8' if session.zsh_version < Gem::Version.new('5.0.8')

View file

@ -35,6 +35,7 @@ typeset -g ZSH_AUTOSUGGEST_ORIGINAL_WIDGET_PREFIX=autosuggest-orig-
up-line-or-history up-line-or-history
down-line-or-history down-line-or-history
accept-line accept-line
copy-earlier-word
) )
} }

View file

@ -71,6 +71,7 @@ typeset -g ZSH_AUTOSUGGEST_ORIGINAL_WIDGET_PREFIX=autosuggest-orig-
up-line-or-history up-line-or-history
down-line-or-history down-line-or-history
accept-line accept-line
copy-earlier-word
) )
} }