summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2016-01-20 01:09:58 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2016-01-20 01:38:24 +0900
commit96176476f3990507b38f2ec45d24c12fcb7aa075 (patch)
tree81d15944ac1e5778e3f75888c595e23f60bff146 /test
parent68c84264af17e735102957a5263026e3f96b1cb7 (diff)
Make fuzzy completion customizable with _fzf_compgen_{path,dir}
Notes: - You can now override _fzf_compgen_path and _fzf_compgen_dir functions to use custom commands such as ag instead of find for listing completion candidates. - The first argument is the base path to start traversal - Removed file-only completion in bash, i.e. _fzf_file_completion. Maintaining a list of commands that only expect files, not directories, is cumbersome (there are too many) and error-prone. TBD: - Added $FZF_COMPLETION_DIR_COMMANDS to customize the list of commands which use directory-only completion. The default is "cd pushd rmdir". Not sure if it's the best approach to address the requirement, I'll leave it as an undocumented feature. Related: #406 (@thomcom), #456 (@frizinak)
Diffstat (limited to 'test')
-rw-r--r--test/test_go.rb16
1 files changed, 15 insertions, 1 deletions
diff --git a/test/test_go.rb b/test/test_go.rb
index efbbf250..a8f75c64 100644
--- a/test/test_go.rb
+++ b/test/test_go.rb
@@ -1269,7 +1269,7 @@ module CompletionTest
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.send_keys 'C-K', :Enter
tmux.until do |lines|
tmux.send_keys 'C-L'
lines[-1].end_with?('/tmp/fzf\ test/foobar')
@@ -1339,6 +1339,20 @@ module CompletionTest
tmux.send_keys 'C-L'
lines[-1] == "kill #{pid}"
end
+
+ def test_custom_completion
+ tmux.send_keys '_fzf_compgen_path() { echo "\$1"; seq 10; }', :Enter
+ tmux.prepare
+ tmux.send_keys 'ls /tmp/**', :Tab, pane: 0
+ tmux.until(1) { |lines| lines.item_count == 11 }
+ tmux.send_keys :BTab, :BTab, :BTab
+ tmux.until(1) { |lines| lines[-2].include? '(3)' }
+ tmux.send_keys :Enter
+ tmux.until do |lines|
+ tmux.send_keys 'C-L'
+ lines[-1] == "ls /tmp 1 2"
+ end
+ end
ensure
Process.kill 'KILL', pid.to_i rescue nil if pid
end