diff --git a/lua/fzf-lua/providers/ui_select.lua b/lua/fzf-lua/providers/ui_select.lua index f63734f..b60226a 100644 --- a/lua/fzf-lua/providers/ui_select.lua +++ b/lua/fzf-lua/providers/ui_select.lua @@ -3,6 +3,7 @@ local utils = require "fzf-lua.utils" local M = {} +local _opts = nil local _old_ui_select = nil M.deregister = function() @@ -11,14 +12,16 @@ M.deregister = function() end vim.ui.select = _old_ui_select _old_ui_select = nil + _opts = nil end -M.register = function() +M.register = function(opts) if vim.ui.select == M.ui_select then -- already registered utils.info("vim.ui.select already registered to fzf-lua") return end + _opts = opts _old_ui_select = vim.ui.select vim.ui.select = M.ui_select end @@ -53,14 +56,14 @@ M.ui_select = function(items, opts, on_choice) opts.format_item(e))) end - local o = {} - o.fzf_opts = { + _opts = _opts or {} + _opts.fzf_opts = { ['--no-multi'] = '', ['--prompt'] = opts.prompt:gsub(":$", "> "), ['--preview-window'] = 'hidden:right:0', } - core.fzf_wrap(o, entries, function(selected) + core.fzf_wrap(_opts, entries, function(selected) local idx = selected and tonumber(selected[1]:match("^(%d+).")) or nil on_choice(items[idx], idx)