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 = { [""] = actions.move_selection_previous, -- Move up with Ctrl-k [""] = actions.move_selection_next, -- Move down with Ctrl-j [""] = 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", "sh", builtin.help_tags, { desc = "[S]earch [H]elp" }) vim.keymap.set("n", "sk", builtin.keymaps, { desc = "[S]earch [K]eymaps" }) vim.keymap.set("n", "sf", builtin.find_files, { desc = "[S]earch [F]iles" }) vim.keymap.set("n", "ss", builtin.builtin, { desc = "[S]earch [S]elect Telescope" }) vim.keymap.set("n", "sw", builtin.grep_string, { desc = "[S]earch current [W]ord" }) vim.keymap.set("n", "sg", builtin.live_grep, { desc = "[S]earch by [G]rep" }) vim.keymap.set("n", "sd", builtin.diagnostics, { desc = "[S]earch [D]iagnostics" }) vim.keymap.set("n", "sr", builtin.resume, { desc = "[S]earch [R]esume" }) vim.keymap.set("n", "s.", builtin.oldfiles, { desc = '[S]earch Recent Files ("." for repeat)' }) vim.keymap.set("n", "", builtin.buffers, { desc = "[ ] Find existing buffers" }) vim.keymap.set("n", "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", "/", 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", "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", "sn", function() builtin.find_files({ cwd = vim.fn.stdpath("config") }) end, { desc = "[S]earch [N]eovim files" }) end, }, })