mirror of
				https://github.com/zsh-users/zsh-autosuggestions.git
				synced 2025-10-30 15:26:29 +08:00 
			
		
		
		
	Enabling suggestions should not fetch a suggestion if buffer is empty
This commit is contained in:
		
							parent
							
								
									7d4a1d9a4a
								
							
						
					
					
						commit
						a2f0ffb122
					
				
							
								
								
									
										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 | ||||
|   end | ||||
| 
 | ||||
|   def paste_string(str) | ||||
|     tmux_command("set-buffer -- '#{str}'") | ||||
|     tmux_command("paste-buffer -dpr -t 0") | ||||
| 
 | ||||
|     self | ||||
|   end | ||||
| 
 | ||||
|   def content(esc_seqs: false) | ||||
|     cmd = 'capture-pane -p -t 0' | ||||
|     cmd += ' -e' if esc_seqs | ||||
|  | ||||
| @ -6,16 +6,37 @@ describe 'the `autosuggest-enable` widget' do | ||||
|   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 | ||||
| 
 | ||||
|       session.send_string(' w') | ||||
|       wait_for { session.content }.to eq('echo world') | ||||
|   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_keys('C-b') | ||||
|         wait_for { session.content }.to eq('echo hello') | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| end | ||||
|  | ||||
| @ -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) | ||||
|  | ||||
| @ -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) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Eric Freese
						Eric Freese