aboutsummaryrefslogtreecommitdiffstats
path: root/init.lua
diff options
context:
space:
mode:
authorMax Schillinger <maxschillinger@web.de>2023-07-13 22:08:23 +0200
committerMatěj Cepl <mcepl@cepl.eu>2023-07-13 22:56:01 +0200
commit5386101c3aac54256f08a94256f91ce109152124 (patch)
tree0fdb5eff52a4341bd2e7db771798be404b2bdc7c /init.lua
parentb1666a31e14338ff1bba0b39c729016048ca4b2d (diff)
downloadvis-fzf-open-5386101c3aac54256f08a94256f91ce109152124.tar.gz
Add option --search-path
Use this option to set a search path per command call. This option is only meant to be used with `fd` as FZF_DEFAULT_COMMAND. Example usage: vis:map(vis.modes.NORMAL, ' fh', ':fzf --search-path $HOME<Enter>') vis:map(vis.modes.NORMAL, ' fr', ':fzf --search-path /<Enter>') vis:map(vis.modes.NORMAL, ' fg', ':fzf --search-path "$(git rev-parse --show-toplevel)"<Enter>')
Diffstat (limited to 'init.lua')
-rw-r--r--init.lua11
1 files changed, 10 insertions, 1 deletions
diff --git a/init.lua b/init.lua
index 47386a5..39725cb 100644
--- a/init.lua
+++ b/init.lua
@@ -18,6 +18,15 @@ module.fzf_path = "fzf"
module.fzf_args = ""
vis:command_register("fzf", function(argv, force, win, selection, range)
+ local fzf_path = module.fzf_path
+ if argv[1] == "--search-path" then
+ table.remove(argv, 1)
+ local dir = table.remove(argv, 1)
+ fzf_path = (
+ [[FZF_DEFAULT_COMMAND="$FZF_DEFAULT_COMMAND --search-path ]] .. dir .. [[" fzf]]
+ )
+ end
+
local command = string.gsub([[
$fzf_path \
--header="Enter:edit,^s:split,^v:vsplit" \
@@ -25,7 +34,7 @@ vis:command_register("fzf", function(argv, force, win, selection, range)
$fzf_args $args
]],
'%$([%w_]+)', {
- fzf_path=module.fzf_path,
+ fzf_path=fzf_path,
fzf_args=module.fzf_args,
args=table.concat(argv, " ")
}