Skip to content

Commit

Permalink
Enabling suggestions should not fetch a suggestion if buffer is empty
Browse files Browse the repository at this point in the history
  • Loading branch information
ericfreese committed Mar 4, 2017
1 parent 7d4a1d9 commit 6e46ac9
Show file tree
Hide file tree
Showing 5 changed files with 79 additions and 7 deletions.
38 changes: 38 additions & 0 deletions spec/integrations/bracketed_paste_magic_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
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
expect(session.content).to eq('echo')

session.send_keys('left')
wait_for { session.content }.to eq('echo hello')
end
end
end
end
7 changes: 7 additions & 0 deletions spec/terminal_session.rb
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,13 @@ def send_keys(*keys)
self
end

def paste_string(str)
tmux_command("set-buffer -b paste -- '#{str}'")
tmux_command("paste-buffer -dpr -b paste -t 0")

self
end

def content(esc_seqs: false)
cmd = 'capture-pane -p -t 0'
cmd += ' -e' if esc_seqs
Expand Down
31 changes: 26 additions & 5 deletions spec/widgets/enable_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,37 @@
end

it 'enables suggestions and fetches a suggestion' do
with_history('echo world', 'echo hello') do
session.send_string('echo')
with_history('echo hello') do
session.send_string('e')
sleep 1
expect(session.content).to eq('echo')
expect(session.content).to eq('e')

session.send_keys('C-b')
session.send_string('c')
wait_for { session.content }.to eq('echo hello')
end
end

context 'invoked on an empty buffer' do
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_string(' w')
wait_for { session.content }.to eq('echo world')
session.send_keys('C-b')
wait_for { session.content }.to eq('echo hello')
end
end
end
end
5 changes: 4 additions & 1 deletion src/widgets.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@ _zsh_autosuggest_disable() {
# Enable suggestions
_zsh_autosuggest_enable() {
unset _ZSH_AUTOSUGGEST_DISABLED
_zsh_autosuggest_fetch

if [ $#BUFFER -gt 0 ]; then
_zsh_autosuggest_fetch
fi
}

# Toggle suggestions (enable/disable)
Expand Down
5 changes: 4 additions & 1 deletion zsh-autosuggestions.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -290,7 +290,10 @@ _zsh_autosuggest_disable() {
# Enable suggestions
_zsh_autosuggest_enable() {
unset _ZSH_AUTOSUGGEST_DISABLED
_zsh_autosuggest_fetch

if [ $#BUFFER -gt 0 ]; then
_zsh_autosuggest_fetch
fi
}

# Toggle suggestions (enable/disable)
Expand Down

0 comments on commit 6e46ac9

Please sign in to comment.