101 lines
4.0 KiB
Lua
101 lines
4.0 KiB
Lua
require("lz.n").load({
|
|
{
|
|
"project.nvim",
|
|
event = { "VimEnter" }, -- Load early to set root correctly
|
|
after = function()
|
|
require("project").setup({
|
|
-- 1. Automagically change directory to project root
|
|
manual_mode = false,
|
|
|
|
-- LSP detection
|
|
lsp = { enabled = true },
|
|
|
|
-- Files/folders that indicate a root
|
|
patterns = { ".git", "_darcs", ".hg", ".bzr", ".svn", "Makefile", "package.json", "flake.nix" },
|
|
|
|
-- Show hidden files in telescope
|
|
show_hidden = true,
|
|
|
|
-- When the project scope changes, change the directory
|
|
scope_chdir = "global",
|
|
})
|
|
end,
|
|
},
|
|
{
|
|
"telescope.nvim",
|
|
event = "VimEnter",
|
|
before = function()
|
|
require("lz.n").trigger_load("project.nvim")
|
|
end,
|
|
after = function()
|
|
local actions = require("telescope.actions")
|
|
|
|
require("telescope").setup({
|
|
defaults = {
|
|
path_display = { "truncate" },
|
|
layout_strategy = "horizontal",
|
|
layout_config = {
|
|
prompt_position = "top",
|
|
},
|
|
sorting_strategy = "ascending",
|
|
mappings = {
|
|
i = {
|
|
["<C-k>"] = actions.move_selection_previous, -- Move up with Ctrl-k
|
|
["<C-j>"] = actions.move_selection_next, -- Move down with Ctrl-j
|
|
["<C-q>"] = actions.send_selected_to_qflist + actions.open_qflist, -- Send to quickfix
|
|
},
|
|
},
|
|
},
|
|
extensions = {
|
|
["ui-select"] = {
|
|
require("telescope.themes").get_dropdown(),
|
|
},
|
|
},
|
|
})
|
|
|
|
-- Enable Telescope extensions if they are installed
|
|
pcall(require("telescope").load_extension, "projects")
|
|
pcall(require("telescope").load_extension, "fzf")
|
|
pcall(require("telescope").load_extension, "ui-select")
|
|
|
|
-- See `:help telescope.builtin`
|
|
local builtin = require("telescope.builtin")
|
|
vim.keymap.set("n", "<leader>sh", builtin.help_tags, { desc = "[S]earch [H]elp" })
|
|
vim.keymap.set("n", "<leader>sk", builtin.keymaps, { desc = "[S]earch [K]eymaps" })
|
|
vim.keymap.set("n", "<leader>sf", builtin.find_files, { desc = "[S]earch [F]iles" })
|
|
vim.keymap.set("n", "<leader>ss", builtin.builtin, { desc = "[S]earch [S]elect Telescope" })
|
|
vim.keymap.set("n", "<leader>sw", builtin.grep_string, { desc = "[S]earch current [W]ord" })
|
|
vim.keymap.set("n", "<leader>sg", builtin.live_grep, { desc = "[S]earch by [G]rep" })
|
|
vim.keymap.set("n", "<leader>sd", builtin.diagnostics, { desc = "[S]earch [D]iagnostics" })
|
|
vim.keymap.set("n", "<leader>sr", builtin.resume, { desc = "[S]earch [R]esume" })
|
|
vim.keymap.set("n", "<leader>s.", builtin.oldfiles, { desc = '[S]earch Recent Files ("." for repeat)' })
|
|
vim.keymap.set("n", "<leader><leader>", builtin.buffers, { desc = "[ ] Find existing buffers" })
|
|
vim.keymap.set("n", "<leader>sp", function()
|
|
require("telescope").extensions.projects.projects({})
|
|
end, { desc = "[S]earch [P]rojects" })
|
|
|
|
-- Slightly advanced example of overriding default behavior and theme
|
|
vim.keymap.set("n", "<leader>/", function()
|
|
-- You can pass additional configuration to Telescope to change the theme, layout, etc.
|
|
builtin.current_buffer_fuzzy_find(require("telescope.themes").get_dropdown({
|
|
winblend = 10,
|
|
previewer = false,
|
|
}))
|
|
end, { desc = "[/] Fuzzily search in current buffer" })
|
|
|
|
-- It's also possible to pass additional configuration options.
|
|
-- See `:help telescope.builtin.live_grep()` for information about particular keys
|
|
vim.keymap.set("n", "<leader>s/", function()
|
|
builtin.live_grep({
|
|
grep_open_files = true,
|
|
prompt_title = "Live Grep in Open Files",
|
|
})
|
|
end, { desc = "[S]earch [/] in Open Files" })
|
|
|
|
-- Shortcut for searching your Neovim configuration files
|
|
vim.keymap.set("n", "<leader>sn", function()
|
|
builtin.find_files({ cwd = vim.fn.stdpath("config") })
|
|
end, { desc = "[S]earch [N]eovim files" })
|
|
end,
|
|
},
|
|
}) |