mirror of
				https://github.com/zsh-users/zsh-autosuggestions.git
				synced 2024-05-11 05:54:57 +00:00 
			
		
		
		
	Merge branch 'fixes/match_prev_cmd_special_chars' into develop
This commit is contained in:
		@@ -1,60 +0,0 @@
 | 
			
		||||
describe 'a special character in the buffer' do
 | 
			
		||||
  it 'should be treated like any other character' do
 | 
			
		||||
    with_history('echo "hello*"', 'echo "hello."') do
 | 
			
		||||
      session.send_string('echo "hello*')
 | 
			
		||||
      wait_for { session.content }.to eq('echo "hello*"')
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    with_history('echo "hello?"', 'echo "hello."') do
 | 
			
		||||
      session.send_string('echo "hello?')
 | 
			
		||||
      wait_for { session.content }.to eq('echo "hello?"')
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    with_history('echo "hello\nworld"') do
 | 
			
		||||
      session.send_string('echo "hello\\')
 | 
			
		||||
      wait_for { session.content }.to eq('echo "hello\nworld"')
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    with_history('echo "\\\\"') do
 | 
			
		||||
      session.send_string('echo "\\\\')
 | 
			
		||||
      wait_for { session.content }.to eq('echo "\\\\"')
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    with_history('echo ~/foo') do
 | 
			
		||||
      session.send_string('echo ~')
 | 
			
		||||
      wait_for { session.content }.to eq('echo ~/foo')
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    with_history('echo "$(ls foo)"') do
 | 
			
		||||
      session.send_string('echo "$(')
 | 
			
		||||
      wait_for { session.content }.to eq('echo "$(ls foo)"')
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    with_history('echo "$history[123]"') do
 | 
			
		||||
      session.send_string('echo "$history[')
 | 
			
		||||
      wait_for { session.content }.to eq('echo "$history[123]"')
 | 
			
		||||
      session.send_string('123]')
 | 
			
		||||
      wait_for { session.content }.to eq('echo "$history[123]"')
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    with_history('echo "#yolo"') do
 | 
			
		||||
      session.send_string('echo "#')
 | 
			
		||||
      wait_for { session.content }.to eq('echo "#yolo"')
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    with_history('echo "#foo"', 'echo $#abc') do
 | 
			
		||||
      session.send_string('echo "#')
 | 
			
		||||
      wait_for { session.content }.to eq('echo "#foo"')
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    with_history('echo "^A"', 'echo "^B"') do
 | 
			
		||||
      session.send_string('echo "^A')
 | 
			
		||||
      wait_for { session.content }.to eq('echo "^A"')
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    with_history('-foo() {}') do
 | 
			
		||||
      session.send_string('-')
 | 
			
		||||
      wait_for { session.content }.to eq('-foo() {}')
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
require 'strategies/special_characters_helper'
 | 
			
		||||
 | 
			
		||||
describe 'the default suggestion strategy' do
 | 
			
		||||
  it 'suggests the last matching history entry' do
 | 
			
		||||
    with_history('ls foo', 'ls bar', 'echo baz') do
 | 
			
		||||
@@ -5,4 +7,6 @@ describe 'the default suggestion strategy' do
 | 
			
		||||
      wait_for { session.content }.to eq('ls bar')
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  include_examples 'special characters'
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
require 'strategies/special_characters_helper'
 | 
			
		||||
 | 
			
		||||
describe 'the match_prev_cmd strategy' do
 | 
			
		||||
  let(:options) { ['ZSH_AUTOSUGGEST_STRATEGY=match_prev_cmd'] }
 | 
			
		||||
 | 
			
		||||
@@ -14,4 +16,6 @@ describe 'the match_prev_cmd strategy' do
 | 
			
		||||
      wait_for { session.content }.to eq('ls bar')
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  include_examples 'special characters'
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										62
									
								
								spec/strategies/special_characters_helper.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								spec/strategies/special_characters_helper.rb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,62 @@
 | 
			
		||||
shared_examples 'special characters' do
 | 
			
		||||
  describe 'a special character in the buffer' do
 | 
			
		||||
    it 'should be treated like any other character' do
 | 
			
		||||
      with_history('echo "hello*"', 'echo "hello."') do
 | 
			
		||||
        session.send_string('echo "hello*')
 | 
			
		||||
        wait_for { session.content }.to eq('echo "hello*"')
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      with_history('echo "hello?"', 'echo "hello."') do
 | 
			
		||||
        session.send_string('echo "hello?')
 | 
			
		||||
        wait_for { session.content }.to eq('echo "hello?"')
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      with_history('echo "hello\nworld"') do
 | 
			
		||||
        session.send_string('echo "hello\\')
 | 
			
		||||
        wait_for { session.content }.to eq('echo "hello\nworld"')
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      with_history('echo "\\\\"') do
 | 
			
		||||
        session.send_string('echo "\\\\')
 | 
			
		||||
        wait_for { session.content }.to eq('echo "\\\\"')
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      with_history('echo ~/foo') do
 | 
			
		||||
        session.send_string('echo ~')
 | 
			
		||||
        wait_for { session.content }.to eq('echo ~/foo')
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      with_history('echo "$(ls foo)"') do
 | 
			
		||||
        session.send_string('echo "$(')
 | 
			
		||||
        wait_for { session.content }.to eq('echo "$(ls foo)"')
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      with_history('echo "$history[123]"') do
 | 
			
		||||
        session.send_string('echo "$history[')
 | 
			
		||||
        wait_for { session.content }.to eq('echo "$history[123]"')
 | 
			
		||||
        session.send_string('123]')
 | 
			
		||||
        wait_for { session.content }.to eq('echo "$history[123]"')
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      with_history('echo "#yolo"') do
 | 
			
		||||
        session.send_string('echo "#')
 | 
			
		||||
        wait_for { session.content }.to eq('echo "#yolo"')
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      with_history('echo "#foo"', 'echo $#abc') do
 | 
			
		||||
        session.send_string('echo "#')
 | 
			
		||||
        wait_for { session.content }.to eq('echo "#foo"')
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      with_history('echo "^A"', 'echo "^B"') do
 | 
			
		||||
        session.send_string('echo "^A')
 | 
			
		||||
        wait_for { session.content }.to eq('echo "^A"')
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      with_history('-foo() {}') do
 | 
			
		||||
        session.send_string('-')
 | 
			
		||||
        wait_for { session.content }.to eq('-foo() {}')
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
		Reference in New Issue
	
	Block a user