112 lines
3.4 KiB
Lua
112 lines
3.4 KiB
Lua
local telescope_plugins = {
|
|
"project.nvim",
|
|
"telescope.nvim",
|
|
"telescope-fzf-native.nvim",
|
|
"telescope-ui-select.nvim",
|
|
}
|
|
|
|
local function load_telescope()
|
|
require("lz.n").trigger_load(telescope_plugins)
|
|
return require("telescope.builtin")
|
|
end
|
|
|
|
local function map_picker(lhs, picker, desc, opts)
|
|
vim.keymap.set("n", lhs, function()
|
|
load_telescope()[picker](opts or {})
|
|
end, { desc = desc })
|
|
end
|
|
|
|
map_picker("<leader>sh", "help_tags", "[S]earch [H]elp")
|
|
map_picker("<leader>sk", "keymaps", "[S]earch [K]eymaps")
|
|
map_picker("<leader>sf", "find_files", "[S]earch [F]iles")
|
|
map_picker("<leader>ss", "builtin", "[S]earch [S]elect Telescope")
|
|
map_picker("<leader>sw", "grep_string", "[S]earch current [W]ord")
|
|
map_picker("<leader>sg", "live_grep", "[S]earch by [G]rep")
|
|
map_picker("<leader>sd", "diagnostics", "[S]earch [D]iagnostics")
|
|
map_picker("<leader>sr", "resume", "[S]earch [R]esume")
|
|
map_picker("<leader>s.", "oldfiles", '[S]earch Recent Files ("." for repeat)')
|
|
map_picker("<leader><leader>", "buffers", "[ ] Find existing buffers")
|
|
map_picker("<leader>sn", "find_files", "[S]earch [N]eovim files", { cwd = vim.fn.stdpath("config") })
|
|
|
|
vim.keymap.set("n", "<leader>sp", function()
|
|
load_telescope()
|
|
require("telescope").extensions.projects.projects({})
|
|
end, { desc = "[S]earch [P]rojects" })
|
|
|
|
vim.keymap.set("n", "<leader>/", function()
|
|
local builtin = load_telescope()
|
|
builtin.current_buffer_fuzzy_find(require("telescope.themes").get_dropdown({
|
|
winblend = 10,
|
|
previewer = false,
|
|
}))
|
|
end, { desc = "[/] Fuzzily search in current buffer" })
|
|
|
|
vim.keymap.set("n", "<leader>s/", function()
|
|
load_telescope().live_grep({
|
|
grep_open_files = true,
|
|
prompt_title = "Live Grep in Open Files",
|
|
})
|
|
end, { desc = "[S]earch [/] in Open Files" })
|
|
|
|
require("lz.n").load({
|
|
{
|
|
"project.nvim",
|
|
event = "VimEnter",
|
|
after = function()
|
|
require("project").setup({
|
|
manual_mode = false,
|
|
lsp = { enabled = true },
|
|
patterns = { ".git", "_darcs", ".hg", ".bzr", ".svn", "Makefile", "package.json", "flake.nix" },
|
|
show_hidden = true,
|
|
scope_chdir = "global",
|
|
})
|
|
end,
|
|
},
|
|
{
|
|
"telescope-fzf-native.nvim",
|
|
},
|
|
{
|
|
"telescope-ui-select.nvim",
|
|
},
|
|
{
|
|
"telescope.nvim",
|
|
cmd = "Telescope",
|
|
before = function()
|
|
require("lz.n").trigger_load("project.nvim")
|
|
end,
|
|
after = function()
|
|
local actions = require("telescope.actions")
|
|
|
|
require("telescope").setup({
|
|
defaults = {
|
|
path_display = { "truncate" },
|
|
border = true,
|
|
borderchars = { "─", "│", "─", "│", "╭", "╮", "╯", "╰" },
|
|
layout_strategy = "horizontal",
|
|
layout_config = {
|
|
prompt_position = "top",
|
|
},
|
|
sorting_strategy = "ascending",
|
|
mappings = {
|
|
i = {
|
|
["<C-k>"] = actions.move_selection_previous,
|
|
["<C-j>"] = actions.move_selection_next,
|
|
["<C-q>"] = actions.send_selected_to_qflist + actions.open_qflist,
|
|
},
|
|
},
|
|
},
|
|
extensions = {
|
|
["ui-select"] = {
|
|
require("telescope.themes").get_dropdown(),
|
|
},
|
|
},
|
|
})
|
|
|
|
require("lz.n").trigger_load({ "telescope-fzf-native.nvim", "telescope-ui-select.nvim" })
|
|
pcall(require("telescope").load_extension, "projects")
|
|
pcall(require("telescope").load_extension, "fzf")
|
|
pcall(require("telescope").load_extension, "ui-select")
|
|
end,
|
|
},
|
|
})
|