mirror of
https://github.com/Llewellynvdm/fzf.git
synced 2024-11-29 08:13:54 +00:00
[zsh-completion] Respect backslash-escaped spaces (#230)
This commit is contained in:
parent
2b61dc6557
commit
26d2af5ee8
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
_fzf_path_completion() {
|
_fzf_path_completion() {
|
||||||
local base lbuf find_opts fzf_opts suffix tail fzf dir leftover matches nnm
|
local base lbuf find_opts fzf_opts suffix tail fzf dir leftover matches nnm
|
||||||
base=$1
|
base=${(Q)1}
|
||||||
lbuf=$2
|
lbuf=$2
|
||||||
find_opts=$3
|
find_opts=$3
|
||||||
fzf_opts=$4
|
fzf_opts=$4
|
||||||
@ -102,7 +102,8 @@ fzf-completion() {
|
|||||||
local tokens cmd prefix trigger tail fzf matches lbuf d_cmds
|
local tokens cmd prefix trigger tail fzf matches lbuf d_cmds
|
||||||
|
|
||||||
# http://zsh.sourceforge.net/FAQ/zshfaq03.html
|
# http://zsh.sourceforge.net/FAQ/zshfaq03.html
|
||||||
tokens=(${=LBUFFER})
|
# http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion-Flags
|
||||||
|
tokens=(${(z)LBUFFER})
|
||||||
if [ ${#tokens} -lt 1 ]; then
|
if [ ${#tokens} -lt 1 ]; then
|
||||||
eval "zle ${fzf_default_completion:-expand-or-complete}"
|
eval "zle ${fzf_default_completion:-expand-or-complete}"
|
||||||
return
|
return
|
||||||
|
@ -582,7 +582,12 @@ end
|
|||||||
|
|
||||||
module CompletionTest
|
module CompletionTest
|
||||||
def test_file_completion
|
def test_file_completion
|
||||||
tmux.send_keys 'mkdir -p /tmp/fzf-test; touch /tmp/fzf-test/{1..100}; touch ~/fzf-home no~such~user', :Enter
|
FileUtils.mkdir_p '/tmp/fzf-test'
|
||||||
|
FileUtils.mkdir_p '/tmp/fzf test'
|
||||||
|
(1..100).each { |i| FileUtils.touch "/tmp/fzf-test/#{i}" }
|
||||||
|
['no~such~user', '/tmp/fzf test/foobar', '~/fzf-home'].each do |f|
|
||||||
|
FileUtils.touch File.expand_path(f)
|
||||||
|
end
|
||||||
tmux.prepare
|
tmux.prepare
|
||||||
tmux.send_keys 'cat /tmp/fzf-test/10**', :Tab, pane: 0
|
tmux.send_keys 'cat /tmp/fzf-test/10**', :Tab, pane: 0
|
||||||
tmux.until(1) { |lines| lines.item_count > 0 }
|
tmux.until(1) { |lines| lines.item_count > 0 }
|
||||||
@ -614,8 +619,20 @@ module CompletionTest
|
|||||||
tmux.send_keys 'C-L'
|
tmux.send_keys 'C-L'
|
||||||
lines[-1].end_with?('no~such~user')
|
lines[-1].end_with?('no~such~user')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# /tmp/fzf\ test**<TAB>
|
||||||
|
tmux.send_keys 'C-u'
|
||||||
|
tmux.send_keys 'cat /tmp/fzf\ test/**', :Tab, pane: 0
|
||||||
|
tmux.until(1) { |lines| lines.item_count > 0 }
|
||||||
|
tmux.send_keys :Enter
|
||||||
|
tmux.until do |lines|
|
||||||
|
tmux.send_keys 'C-L'
|
||||||
|
lines[-1].end_with?('/tmp/fzf\ test/foobar')
|
||||||
|
end
|
||||||
ensure
|
ensure
|
||||||
File.unlink 'no~such~user'
|
['/tmp/fzf-test', '/tmp/fzf test', '~/fzf-home', 'no~such~user'].each do |f|
|
||||||
|
FileUtils.rm_rf File.expand_path(f)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_dir_completion
|
def test_dir_completion
|
||||||
|
Loading…
Reference in New Issue
Block a user