mirror of
https://github.com/zsh-users/zsh-autosuggestions.git
synced 2024-11-25 10:01:05 +01:00
Revert fc
usage in calculating suggestion
As far as I know, `fc` makes it impossible to tell whether history items used an actual newline character or the string "\n". Pulling from the `$history` array gives a more accurate representation of the actual command that was run.
This commit is contained in:
parent
8e06a54b1c
commit
0305908adf
3 changed files with 17 additions and 3 deletions
|
@ -30,7 +30,7 @@ describe 'default strategy' do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
xcontext 'with a multiline hist entry' do
|
context 'with a multiline hist entry' do
|
||||||
before do
|
before do
|
||||||
session.send_string('echo "')
|
session.send_string('echo "')
|
||||||
session.send_keys('enter')
|
session.send_keys('enter')
|
||||||
|
|
|
@ -9,5 +9,12 @@
|
||||||
_zsh_autosuggest_strategy_default() {
|
_zsh_autosuggest_strategy_default() {
|
||||||
setopt localoptions EXTENDED_GLOB
|
setopt localoptions EXTENDED_GLOB
|
||||||
|
|
||||||
fc -lnrm "${1//(#m)[\\()\[\]|*?~]/\\$MATCH}*" 1 2>/dev/null | head -n 1
|
local prefix="${1//(#m)[\\()\[\]|*?~]/\\$MATCH}"
|
||||||
|
|
||||||
|
# Get the keys of the history items that match
|
||||||
|
local -a histkeys
|
||||||
|
histkeys=(${(k)history[(r)$prefix*]})
|
||||||
|
|
||||||
|
# Echo the value of the first key
|
||||||
|
echo -E "${history[$histkeys[1]]}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -421,7 +421,14 @@ zle -N _autosuggest-show-suggestion _zsh_autosuggest_show_suggestion
|
||||||
_zsh_autosuggest_strategy_default() {
|
_zsh_autosuggest_strategy_default() {
|
||||||
setopt localoptions EXTENDED_GLOB
|
setopt localoptions EXTENDED_GLOB
|
||||||
|
|
||||||
fc -lnrm "${1//(#m)[\\()\[\]|*?~]/\\$MATCH}*" 1 2>/dev/null | head -n 1
|
local prefix="${1//(#m)[\\()\[\]|*?~]/\\$MATCH}"
|
||||||
|
|
||||||
|
# Get the keys of the history items that match
|
||||||
|
local -a histkeys
|
||||||
|
histkeys=(${(k)history[(r)$prefix*]})
|
||||||
|
|
||||||
|
# Echo the value of the first key
|
||||||
|
echo -E "${history[$histkeys[1]]}"
|
||||||
}
|
}
|
||||||
|
|
||||||
#--------------------------------------------------------------------#
|
#--------------------------------------------------------------------#
|
||||||
|
|
Loading…
Reference in a new issue