mirror of
https://github.com/zsh-users/zsh-autosuggestions.git
synced 2024-11-18 09:51:06 +01:00
Enabling suggestions should not fetch a suggestion if buffer is empty
This commit is contained in:
parent
7d4a1d9a4a
commit
a2f0ffb122
5 changed files with 77 additions and 7 deletions
36
spec/integrations/bracketed_paste_magic_spec.rb
Normal file
36
spec/integrations/bracketed_paste_magic_spec.rb
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
describe 'pasting using bracketed-paste-magic' do
|
||||||
|
let(:before_sourcing) do
|
||||||
|
-> do
|
||||||
|
session.
|
||||||
|
run_command('autoload -Uz bracketed-paste-magic').
|
||||||
|
run_command('zle -N bracketed-paste bracketed-paste-magic')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with suggestions disabled while pasting' do
|
||||||
|
before do
|
||||||
|
session.
|
||||||
|
run_command('bpm_init() { zle autosuggest-disable }').
|
||||||
|
run_command('bpm_finish() { zle autosuggest-enable }').
|
||||||
|
run_command('zstyle :bracketed-paste-magic paste-init bpm_init').
|
||||||
|
run_command('zstyle :bracketed-paste-magic paste-finish bpm_finish')
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'does not show an incorrect suggestion' do
|
||||||
|
with_history('echo hello') do
|
||||||
|
session.paste_string("echo #{'a' * 60}")
|
||||||
|
sleep 1
|
||||||
|
expect(session.content).to eq("echo #{'a' * 60}")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'shows a suggestion after a non-modifying keystroke' do
|
||||||
|
with_history('echo hello') do
|
||||||
|
session.paste_string('echo')
|
||||||
|
sleep 1
|
||||||
|
session.send_keys('left')
|
||||||
|
wait_for { session.content }.to eq('echo hello')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -41,6 +41,13 @@ class TerminalSession
|
||||||
self
|
self
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def paste_string(str)
|
||||||
|
tmux_command("set-buffer -- '#{str}'")
|
||||||
|
tmux_command("paste-buffer -dpr -t 0")
|
||||||
|
|
||||||
|
self
|
||||||
|
end
|
||||||
|
|
||||||
def content(esc_seqs: false)
|
def content(esc_seqs: false)
|
||||||
cmd = 'capture-pane -p -t 0'
|
cmd = 'capture-pane -p -t 0'
|
||||||
cmd += ' -e' if esc_seqs
|
cmd += ' -e' if esc_seqs
|
||||||
|
|
|
@ -6,16 +6,37 @@ describe 'the `autosuggest-enable` widget' do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'enables suggestions and fetches a suggestion' do
|
it 'enables suggestions and fetches a suggestion' do
|
||||||
with_history('echo world', 'echo hello') do
|
with_history('echo hello') do
|
||||||
session.send_string('echo')
|
session.send_string('e')
|
||||||
sleep 1
|
sleep 1
|
||||||
expect(session.content).to eq('echo')
|
expect(session.content).to eq('e')
|
||||||
|
|
||||||
session.send_keys('C-b')
|
session.send_keys('C-b')
|
||||||
|
session.send_string('c')
|
||||||
wait_for { session.content }.to eq('echo hello')
|
wait_for { session.content }.to eq('echo hello')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
session.send_string(' w')
|
context 'invoked on an empty buffer' do
|
||||||
wait_for { session.content }.to eq('echo world')
|
it 'does not fetch a suggestion' do
|
||||||
|
with_history('echo hello') do
|
||||||
|
session.send_keys('C-b')
|
||||||
|
sleep 1
|
||||||
|
expect(session.content).to eq('')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'invoked on a non-empty buffer' do
|
||||||
|
it 'fetches a suggestion' do
|
||||||
|
with_history('echo hello') do
|
||||||
|
session.send_string('e')
|
||||||
|
sleep 1
|
||||||
|
expect(session.content).to eq('e')
|
||||||
|
|
||||||
|
session.send_keys('C-b')
|
||||||
|
wait_for { session.content }.to eq('echo hello')
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -12,7 +12,10 @@ _zsh_autosuggest_disable() {
|
||||||
# Enable suggestions
|
# Enable suggestions
|
||||||
_zsh_autosuggest_enable() {
|
_zsh_autosuggest_enable() {
|
||||||
unset _ZSH_AUTOSUGGEST_DISABLED
|
unset _ZSH_AUTOSUGGEST_DISABLED
|
||||||
_zsh_autosuggest_fetch
|
|
||||||
|
if [ $#BUFFER -gt 0 ]; then
|
||||||
|
_zsh_autosuggest_fetch
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Toggle suggestions (enable/disable)
|
# Toggle suggestions (enable/disable)
|
||||||
|
|
|
@ -290,7 +290,10 @@ _zsh_autosuggest_disable() {
|
||||||
# Enable suggestions
|
# Enable suggestions
|
||||||
_zsh_autosuggest_enable() {
|
_zsh_autosuggest_enable() {
|
||||||
unset _ZSH_AUTOSUGGEST_DISABLED
|
unset _ZSH_AUTOSUGGEST_DISABLED
|
||||||
_zsh_autosuggest_fetch
|
|
||||||
|
if [ $#BUFFER -gt 0 ]; then
|
||||||
|
_zsh_autosuggest_fetch
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Toggle suggestions (enable/disable)
|
# Toggle suggestions (enable/disable)
|
||||||
|
|
Loading…
Reference in a new issue