mirror of
https://github.com/LazyVim/LazyVim.git
synced 2026-07-25 14:01:06 +00:00
update the plugin spec
This commit is contained in:
parent
e3d071ec29
commit
297e83f110
1 changed files with 79 additions and 85 deletions
|
|
@ -20,93 +20,87 @@ end
|
||||||
|
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
"nvim-telescope/telescope.nvim",
|
"nvim-telescope/telescope-media-files.nvim",
|
||||||
dependencies = {
|
event = "VeryLazy",
|
||||||
{
|
dependencies = "nvim-telescope/telescope.nvim",
|
||||||
"nvim-telescope/telescope-media-files.nvim",
|
enabled = function()
|
||||||
event = "VeryLazy",
|
if not LazyVim.has("telescope.nvim") then
|
||||||
enabled = function()
|
return false
|
||||||
if not LazyVim.has("telescope.nvim") then
|
end
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
local function sendPrerequisitesError(msg)
|
local function sendPrerequisitesError(msg)
|
||||||
LazyVim.warn(
|
LazyVim.warn(
|
||||||
"You have enabled extras.editor.medias, see (:`LazyExtras`). \n\n"
|
"You have enabled extras.editor.medias, see (:`LazyExtras`). \n\n"
|
||||||
.. msg
|
.. msg
|
||||||
.. "\n\nMore information can be found at: "
|
.. "\n\nMore information can be found at: "
|
||||||
.. "[nvim-telescope/telescope-media-files.nvim](https://github.com/nvim-telescope/telescope-media-files.nvim?tab=readme-ov-file#prerequisites)."
|
.. "[nvim-telescope/telescope-media-files.nvim](https://github.com/nvim-telescope/telescope-media-files.nvim?tab=readme-ov-file#prerequisites)."
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
local prerequisites = {
|
local prerequisites = {
|
||||||
required = {
|
required = {
|
||||||
{ cmd = "chafa", name = "Chafa", filetypes = { "png", "jpg", "jpeg", "webp" } },
|
{ cmd = "chafa", name = "Chafa", filetypes = { "png", "jpg", "jpeg", "webp" } },
|
||||||
},
|
|
||||||
findCmd = {
|
|
||||||
{ cmd = "fd", name = "fd" },
|
|
||||||
{ cmd = "rg", name = "rg" },
|
|
||||||
{ cmd = "find", name = "find" },
|
|
||||||
},
|
|
||||||
optional = {
|
|
||||||
{ cmd = "convert", name = "ImageMagick", filetypes = { "svg" } },
|
|
||||||
{ cmd = "ffmpegthumbnailer", name = "ffmpegthumbnailer", filetypes = { "mp4", "webm" } },
|
|
||||||
{ cmd = "pdftoppm", name = "pdftoppm", filetypes = { "pdf" } },
|
|
||||||
{ cmd = "epub-thumbnailer", name = "epub-thumbnailer", filetypes = { "epub" } },
|
|
||||||
{ cmd = "fontpreview", name = "fontpreview", filetypes = { "ttf", "otf" } },
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Ensure all required prerequisites are installed
|
|
||||||
for _, tool in ipairs(prerequisites.required) do
|
|
||||||
if vim.fn.executable(tool.cmd) == 0 then
|
|
||||||
sendPrerequisitesError(string.format("The required prerequisite not installed: `%s`", tool.name))
|
|
||||||
return false
|
|
||||||
else
|
|
||||||
supportedFiletypeSet:add(tool.filetypes)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Verify that at least one of the required find commands is installed
|
|
||||||
for _, tool in ipairs(prerequisites.findCmd) do
|
|
||||||
if vim.fn.executable(tool.cmd) == 1 then
|
|
||||||
findCmd = tool.cmd
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if not findCmd then
|
|
||||||
sendPrerequisitesError(
|
|
||||||
"None of the required 'find cmd' prerequisites is installed.\n"
|
|
||||||
.. "Please install at least one of the following: `rd`, `rg`, or `find`."
|
|
||||||
)
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Check optional prerequisites and include their filetypes if installed
|
|
||||||
for _, tool in ipairs(prerequisites.optional) do
|
|
||||||
if vim.fn.executable(tool.cmd) == 1 then
|
|
||||||
supportedFiletypeSet:add(tool.filetypes)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return true
|
|
||||||
end,
|
|
||||||
config = function(_, opts)
|
|
||||||
LazyVim.on_load("telescope.nvim", function()
|
|
||||||
local ok, err = pcall(require("telescope").load_extension, "media_files")
|
|
||||||
if ok then
|
|
||||||
opts.extensions = vim.tbl_extend("force", opts.extensions or {}, {
|
|
||||||
media_files = { filetypes = supportedFiletypeSet:toList(), find_cmd = findCmd },
|
|
||||||
})
|
|
||||||
else
|
|
||||||
LazyVim.error("Failed to load the telescope extension for `telescope-media-files.nvim`:\n" .. err)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
end,
|
|
||||||
keys = {
|
|
||||||
{ "<leader>fm", "<cmd>Telescope media_files<cr>", desc = "Find Media Files" },
|
|
||||||
},
|
},
|
||||||
},
|
findCmd = {
|
||||||
|
{ cmd = "fd", name = "fd" },
|
||||||
|
{ cmd = "rg", name = "rg" },
|
||||||
|
{ cmd = "find", name = "find" },
|
||||||
|
},
|
||||||
|
optional = {
|
||||||
|
{ cmd = "convert", name = "ImageMagick", filetypes = { "svg" } },
|
||||||
|
{ cmd = "ffmpegthumbnailer", name = "ffmpegthumbnailer", filetypes = { "mp4", "webm" } },
|
||||||
|
{ cmd = "pdftoppm", name = "pdftoppm", filetypes = { "pdf" } },
|
||||||
|
{ cmd = "epub-thumbnailer", name = "epub-thumbnailer", filetypes = { "epub" } },
|
||||||
|
{ cmd = "fontpreview", name = "fontpreview", filetypes = { "ttf", "otf" } },
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Ensure all required prerequisites are installed
|
||||||
|
for _, tool in ipairs(prerequisites.required) do
|
||||||
|
if vim.fn.executable(tool.cmd) == 0 then
|
||||||
|
sendPrerequisitesError(string.format("The required prerequisite not installed: `%s`", tool.name))
|
||||||
|
return false
|
||||||
|
else
|
||||||
|
supportedFiletypeSet:add(tool.filetypes)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Verify that at least one of the required find commands is installed
|
||||||
|
for _, tool in ipairs(prerequisites.findCmd) do
|
||||||
|
if vim.fn.executable(tool.cmd) == 1 then
|
||||||
|
findCmd = tool.cmd
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if not findCmd then
|
||||||
|
sendPrerequisitesError(
|
||||||
|
"None of the required 'find cmd' prerequisites is installed.\n"
|
||||||
|
.. "Please install at least one of the following: `rd`, `rg`, or `find`."
|
||||||
|
)
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Check optional prerequisites and include their filetypes if installed
|
||||||
|
for _, tool in ipairs(prerequisites.optional) do
|
||||||
|
if vim.fn.executable(tool.cmd) == 1 then
|
||||||
|
supportedFiletypeSet:add(tool.filetypes)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return true
|
||||||
|
end,
|
||||||
|
config = function(_, opts)
|
||||||
|
local ok, err = pcall(require("telescope").load_extension, "media_files")
|
||||||
|
if ok then
|
||||||
|
opts.extensions = vim.tbl_extend("force", opts.extensions or {}, {
|
||||||
|
media_files = { filetypes = supportedFiletypeSet:toList(), find_cmd = findCmd },
|
||||||
|
})
|
||||||
|
else
|
||||||
|
LazyVim.error("Failed to load the telescope extension for `telescope-media-files.nvim`:\n" .. err)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
keys = {
|
||||||
|
{ "<leader>fm", "<cmd>Telescope media_files<cr>", desc = "Find Media Files" },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue