mirror of
https://github.com/zsh-users/zsh-autosuggestions.git
synced 2025-12-08 15:32:31 +01:00
Support fallback strategies by setting array in config
This commit is contained in:
parent
62f5f14f2f
commit
a78ea16c50
8 changed files with 93 additions and 18 deletions
|
|
@ -1,20 +1,44 @@
|
|||
describe 'a suggestion for a given prefix' do
|
||||
let(:options) { ['_zsh_autosuggest_strategy_history() { suggestion="echo foo" }'] }
|
||||
let(:history_strategy) { '_zsh_autosuggest_strategy_history() { suggestion="history" }' }
|
||||
let(:foobar_strategy) { '_zsh_autosuggest_strategy_foobar() { [[ "foobar baz" = $1* ]] && suggestion="foobar baz" }' }
|
||||
let(:foobaz_strategy) { '_zsh_autosuggest_strategy_foobaz() { [[ "foobaz bar" = $1* ]] && suggestion="foobaz bar" }' }
|
||||
|
||||
it 'is determined by calling the default strategy function' do
|
||||
session.send_string('e')
|
||||
wait_for { session.content }.to eq('echo foo')
|
||||
let(:options) { [ history_strategy ] }
|
||||
|
||||
it 'by default is determined by calling the `history` strategy function' do
|
||||
session.send_string('h')
|
||||
wait_for { session.content }.to eq('history')
|
||||
end
|
||||
|
||||
context 'when ZSH_AUTOSUGGEST_STRATEGY is set' do
|
||||
context 'when ZSH_AUTOSUGGEST_STRATEGY is set to an array' do
|
||||
let(:options) { [
|
||||
'_zsh_autosuggest_strategy_custom() { suggestion="echo foo" }',
|
||||
'ZSH_AUTOSUGGEST_STRATEGY=custom'
|
||||
foobar_strategy,
|
||||
foobaz_strategy,
|
||||
'ZSH_AUTOSUGGEST_STRATEGY=(foobar foobaz)'
|
||||
] }
|
||||
|
||||
it 'is determined by calling the specified strategy function' do
|
||||
session.send_string('e')
|
||||
wait_for { session.content }.to eq('echo foo')
|
||||
it 'is determined by the first strategy function to return a suggestion' do
|
||||
session.send_string('foo')
|
||||
wait_for { session.content }.to eq('foobar baz')
|
||||
|
||||
session.send_string('baz')
|
||||
wait_for { session.content }.to eq('foobaz bar')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when ZSH_AUTOSUGGEST_STRATEGY is set to a string' do
|
||||
let(:options) { [
|
||||
foobar_strategy,
|
||||
foobaz_strategy,
|
||||
'ZSH_AUTOSUGGEST_STRATEGY="foobar foobaz"'
|
||||
] }
|
||||
|
||||
it 'is determined by the first strategy function to return a suggestion' do
|
||||
session.send_string('foo')
|
||||
wait_for { session.content }.to eq('foobar baz')
|
||||
|
||||
session.send_string('baz')
|
||||
wait_for { session.content }.to eq('foobaz bar')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue