浏览代码

Merge branch 'fixes/match_prev_cmd_special_chars' into develop

pull/257/merge
Eric Freese 7 年前
父节点
当前提交
218acf2fbe
共有 6 个文件被更改,包括 72 次插入62 次删除
  1. +0
    -60
      spec/special_characters_spec.rb
  2. +4
    -0
      spec/strategies/default_spec.rb
  3. +4
    -0
      spec/strategies/match_prev_cmd_spec.rb
  4. +62
    -0
      spec/strategies/special_characters_helper.rb
  5. +1
    -1
      src/strategies/match_prev_cmd.zsh
  6. +1
    -1
      zsh-autosuggestions.zsh

+ 0
- 60
spec/special_characters_spec.rb 查看文件

@ -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

+ 4
- 0
spec/strategies/default_spec.rb 查看文件

@ -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

+ 4
- 0
spec/strategies/match_prev_cmd_spec.rb 查看文件

@ -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
- 0
spec/strategies/special_characters_helper.rb 查看文件

@ -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

+ 1
- 1
src/strategies/match_prev_cmd.zsh 查看文件

@ -26,7 +26,7 @@ _zsh_autosuggest_strategy_match_prev_cmd() {
# Get all history event numbers that correspond to history
# entries that match pattern $prefix*
local history_match_keys
history_match_keys=(${(k)history[(R)$prefix*]})
history_match_keys=(${(k)history[(R)${(b)prefix}*]})
# By default we use the first history number (most recent history entry)
local histkey="${history_match_keys[1]}"

+ 1
- 1
zsh-autosuggestions.zsh 查看文件

@ -533,7 +533,7 @@ _zsh_autosuggest_strategy_match_prev_cmd() {
# Get all history event numbers that correspond to history
# entries that match pattern $prefix*
local history_match_keys
history_match_keys=(${(k)history[(R)$prefix*]})
history_match_keys=(${(k)history[(R)${(b)prefix}*]})
# By default we use the first history number (most recent history entry)
local histkey="${history_match_keys[1]}"

正在加载...
取消
保存