mirror of
https://github.com/pnx/dotfiles
synced 2026-06-16 03:14:55 +02:00
nvim/lua/user: lazy-load telescope ui-select extension
This commit is contained in:
parent
76aac6c990
commit
2bf2124142
2 changed files with 33 additions and 3 deletions
|
|
@ -1,12 +1,15 @@
|
||||||
local icons = require("user.icons")
|
local icons = require("user.icons")
|
||||||
local ui = require("user.ui.telescope")
|
local ui = require("user.ui.telescope")
|
||||||
|
|
||||||
|
require('user.utils.telescope').register_ui_select_loader()
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"nvim-telescope/telescope.nvim",
|
"nvim-telescope/telescope.nvim",
|
||||||
branch = "master",
|
branch = "master",
|
||||||
dependencies = {
|
dependencies = {
|
||||||
"nvim-lua/plenary.nvim",
|
"nvim-lua/plenary.nvim",
|
||||||
"nvim-tree/nvim-web-devicons",
|
"nvim-tree/nvim-web-devicons",
|
||||||
|
"nvim-telescope/telescope-ui-select.nvim",
|
||||||
"sharkdp/fd",
|
"sharkdp/fd",
|
||||||
},
|
},
|
||||||
cmd = "Telescope",
|
cmd = "Telescope",
|
||||||
|
|
@ -77,14 +80,19 @@ return {
|
||||||
})
|
})
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
|
extensions = {
|
||||||
|
["ui-select"] = {
|
||||||
|
require("telescope.themes").get_dropdown(ui.dropdown)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
end,
|
end,
|
||||||
config = function(_, opts)
|
config = function(_, opts)
|
||||||
local telescope = require("telescope")
|
local telescope = require("telescope")
|
||||||
|
|
||||||
telescope.setup(opts)
|
telescope.setup(opts)
|
||||||
for name, _ in pairs(opts.extensions or {}) do
|
-- for name, _ in pairs(opts.extensions or {}) do
|
||||||
telescope.load_extension(name)
|
-- telescope.load_extension(name)
|
||||||
end
|
-- end
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -204,4 +204,26 @@ function M.height(percentage, opts)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local select_loader_loaded = false
|
||||||
|
|
||||||
|
-- Neat hack to lazy load ui-select extension when vim.ui.select() is called.
|
||||||
|
function M.register_ui_select_loader()
|
||||||
|
if select_loader_loaded then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local std_select = vim.ui.select
|
||||||
|
vim.ui.select = function (items, opts, choice)
|
||||||
|
local hasExt, _ = pcall(require, "telescope._extensions.ui-select")
|
||||||
|
if hasExt then
|
||||||
|
require('telescope').load_extension("ui-select")
|
||||||
|
else
|
||||||
|
vim.ui.select = std_select
|
||||||
|
end
|
||||||
|
vim.ui.select(items, opts, choice)
|
||||||
|
end
|
||||||
|
select_loader_loaded = true
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue