feat(file_selector): add snacks picker as a file selector
This commit is contained in:
parent
d6b371e75f
commit
c5d7d542f3
@ -337,7 +337,7 @@ This is achieved but emulating nvim-cmp using blink.compat
|
|||||||
|
|
||||||
```lua
|
```lua
|
||||||
file_selector = {
|
file_selector = {
|
||||||
--- @alias FileSelectorProvider "native" | "fzf" | "mini.pick" | "telescope" | string
|
--- @alias FileSelectorProvider "native" | "fzf" | "mini.pick" | "snacks" | "telescope" | string
|
||||||
provider = "fzf",
|
provider = "fzf",
|
||||||
-- Options override for custom providers
|
-- Options override for custom providers
|
||||||
provider_opts = {},
|
provider_opts = {},
|
||||||
|
@ -248,7 +248,7 @@ M._defaults = {
|
|||||||
},
|
},
|
||||||
--- @class AvanteFileSelectorConfig
|
--- @class AvanteFileSelectorConfig
|
||||||
file_selector = {
|
file_selector = {
|
||||||
--- @alias FileSelectorProvider "native" | "fzf" | "mini.pick" | "telescope" | string
|
--- @alias FileSelectorProvider "native" | "fzf" | "mini.pick" | "snacks" | "telescope" | string
|
||||||
provider = "native",
|
provider = "native",
|
||||||
-- Options override for custom providers
|
-- Options override for custom providers
|
||||||
provider_opts = {},
|
provider_opts = {},
|
||||||
|
@ -167,6 +167,18 @@ function FileSelector:mini_pick_ui(handler)
|
|||||||
handler(mini_pick.builtin.files())
|
handler(mini_pick.builtin.files())
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function FileSelector:snacks_picker_ui(handler)
|
||||||
|
Snacks.picker.files({
|
||||||
|
exclude = self.selected_filepaths,
|
||||||
|
confirm = function(picker)
|
||||||
|
picker:close()
|
||||||
|
local items = picker:selected({ fallback = true })
|
||||||
|
local files = vim.tbl_map(function(item) return item.file end, items)
|
||||||
|
handler(files)
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
function FileSelector:telescope_ui(handler)
|
function FileSelector:telescope_ui(handler)
|
||||||
local success, _ = pcall(require, "telescope")
|
local success, _ = pcall(require, "telescope")
|
||||||
if not success then
|
if not success then
|
||||||
@ -256,6 +268,8 @@ function FileSelector:show_select_ui()
|
|||||||
self:fzf_ui(handler)
|
self:fzf_ui(handler)
|
||||||
elseif Config.file_selector.provider == "mini.pick" then
|
elseif Config.file_selector.provider == "mini.pick" then
|
||||||
self:mini_pick_ui(handler)
|
self:mini_pick_ui(handler)
|
||||||
|
elseif Config.file_selector.provider == "snacks" then
|
||||||
|
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)
|
||||||
else
|
else
|
||||||
|
Loading…
x
Reference in New Issue
Block a user