fix(file_selector): make sure to flatten selected_paths if picker yields a single string (#1153)
This commit is contained in:
parent
5d1bc6e8b4
commit
692c168e5b
@ -252,6 +252,8 @@ M._defaults = {
|
|||||||
provider = "native",
|
provider = "native",
|
||||||
-- Options override for custom providers
|
-- Options override for custom providers
|
||||||
provider_opts = {},
|
provider_opts = {},
|
||||||
|
--- @type fun(selected_paths: string[] | string | nil): nil
|
||||||
|
handler = nil,
|
||||||
},
|
},
|
||||||
suggestion = {
|
suggestion = {
|
||||||
debounce = 600,
|
debounce = 600,
|
||||||
|
@ -30,13 +30,16 @@ function FileSelector:process_directory(absolute_path, project_root)
|
|||||||
self:emit("update")
|
self:emit("update")
|
||||||
end
|
end
|
||||||
|
|
||||||
---@param selected_paths string[] | nil
|
---@param selected_paths string | string[] | nil
|
||||||
---@return nil
|
---@return nil
|
||||||
function FileSelector:handle_path_selection(selected_paths)
|
function FileSelector:handle_path_selection(selected_paths)
|
||||||
if not selected_paths then return end
|
if not selected_paths then return end
|
||||||
local project_root = Utils.get_project_root()
|
local project_root = Utils.get_project_root()
|
||||||
|
|
||||||
for _, selected_path in ipairs(selected_paths) do
|
-- Convert single string to array if needed
|
||||||
|
local paths = type(selected_paths) == "string" and { selected_paths } or selected_paths
|
||||||
|
|
||||||
|
for _, selected_path in ipairs(paths) do
|
||||||
local absolute_path = Path:new(project_root):joinpath(selected_path):absolute()
|
local absolute_path = Path:new(project_root):joinpath(selected_path):absolute()
|
||||||
|
|
||||||
local stat = vim.loop.fs_stat(absolute_path)
|
local stat = vim.loop.fs_stat(absolute_path)
|
||||||
@ -313,7 +316,8 @@ end
|
|||||||
|
|
||||||
---@return nil
|
---@return nil
|
||||||
function FileSelector:show_select_ui()
|
function FileSelector:show_select_ui()
|
||||||
local function handler(selected_paths) self:handle_path_selection(selected_paths) end
|
local handler = Config.file_selector.handler
|
||||||
|
if handler == nil then handler = function(selected_paths) self:handle_path_selection(selected_paths) end end
|
||||||
|
|
||||||
vim.schedule(function()
|
vim.schedule(function()
|
||||||
if Config.file_selector.provider == "native" then
|
if Config.file_selector.provider == "native" then
|
||||||
|
Loading…
x
Reference in New Issue
Block a user