feat(file_selector): support customized file selector method (#1204)
This commit is contained in:
parent
0bfbd39ebc
commit
6d116fac36
@ -5,6 +5,11 @@
|
|||||||
|
|
||||||
local Utils = require("avante.utils")
|
local Utils = require("avante.utils")
|
||||||
|
|
||||||
|
---@class avante.file_selector.IParams
|
||||||
|
---@field public title string
|
||||||
|
---@field public filepaths string[]
|
||||||
|
---@field public handler fun(filepaths: string[]|nil): nil
|
||||||
|
|
||||||
---@class avante.CoreConfig: avante.Config
|
---@class avante.CoreConfig: avante.Config
|
||||||
local M = {}
|
local M = {}
|
||||||
---@class avante.Config
|
---@class avante.Config
|
||||||
@ -327,7 +332,7 @@ M._defaults = {
|
|||||||
},
|
},
|
||||||
--- @class AvanteFileSelectorConfig
|
--- @class AvanteFileSelectorConfig
|
||||||
file_selector = {
|
file_selector = {
|
||||||
--- @alias FileSelectorProvider "native" | "fzf" | "mini.pick" | "snacks" | "telescope" | string
|
--- @alias FileSelectorProvider "native" | "fzf" | "mini.pick" | "snacks" | "telescope" | string | fun(params: avante.file_selector.IParams): nil
|
||||||
provider = "native",
|
provider = "native",
|
||||||
-- Options override for custom providers
|
-- Options override for custom providers
|
||||||
provider_opts = {},
|
provider_opts = {},
|
||||||
|
@ -330,6 +330,11 @@ function FileSelector:show_select_ui()
|
|||||||
self:snacks_picker_ui(handler)
|
self:snacks_picker_ui(handler)
|
||||||
elseif Config.file_selector.provider == "telescope" then
|
elseif Config.file_selector.provider == "telescope" then
|
||||||
self:telescope_ui(handler)
|
self:telescope_ui(handler)
|
||||||
|
elseif type(Config.file_selector.provider) == "function" then
|
||||||
|
local title = string.format("%s:", PROMPT_TITLE) ---@type string
|
||||||
|
local filepaths = self:get_filepaths() ---@type string[]
|
||||||
|
local params = { title = title, filepaths = filepaths, handler = handler } ---@type avante.file_selector.IParams
|
||||||
|
Config.file_selector.provider(params)
|
||||||
else
|
else
|
||||||
Utils.error("Unknown file selector provider: " .. Config.file_selector.provider)
|
Utils.error("Unknown file selector provider: " .. Config.file_selector.provider)
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user