summaryrefslogtreecommitdiffstats
path: root/lua/conf/plugins/telescope.lua
diff options
context:
space:
mode:
authorSquibid <me@zacharyscheiman.com>2025-05-18 22:22:39 -0400
committerSquibid <me@zacharyscheiman.com>2025-05-18 22:22:39 -0400
commitd0155fcc7c734c1e3506e59cbb17ec3fb2a4b541 (patch)
tree16b9c74849262c2f3ea88c98494122082743a89d /lua/conf/plugins/telescope.lua
parentdf666dec0f125416990ec6102b2d3cc650175cae (diff)
downloadnvim-d0155fcc7c734c1e3506e59cbb17ec3fb2a4b541.tar.gz
nvim-d0155fcc7c734c1e3506e59cbb17ec3fb2a4b541.tar.bz2
nvim-d0155fcc7c734c1e3506e59cbb17ec3fb2a4b541.zip
make telescope work better in projects
Diffstat (limited to 'lua/conf/plugins/telescope.lua')
-rw-r--r--lua/conf/plugins/telescope.lua34
1 files changed, 29 insertions, 5 deletions
diff --git a/lua/conf/plugins/telescope.lua b/lua/conf/plugins/telescope.lua
index c0bb20d..b6909b4 100644
--- a/lua/conf/plugins/telescope.lua
+++ b/lua/conf/plugins/telescope.lua
@@ -1,6 +1,26 @@
local misc = require("core.misc")
local map = misc.map
+--- get the root directory for telescope to search
+---@return string the root directory
+local function root_dir()
+ local clients = vim.lsp.get_clients({ bufnr = 0 })
+ if #clients > 0 then
+ return clients[1].config.root_dir
+ end
+
+ return "."
+end
+
+--- wrap a telebuilt picker to make it work for the current project root
+---@param fn function telebuilt function
+---@return function the new function
+local function telebuilt_picker(fn)
+ return function()
+ fn { cwd = root_dir() }
+ end
+end
+
return { "nvim-telescope/telescope.nvim",
disable = not vim.fn.has("nvim-0.9.0"),
requires = {
@@ -56,12 +76,14 @@ return { "nvim-telescope/telescope.nvim",
-- keymaps
local telebuilt = require("telescope.builtin")
- map("n", "<leader>f", telebuilt.find_files, { desc = "Find files." })
+ map("n", "<leader>f", telebuilt_picker(telebuilt.find_files), {
+ desc = "Find files."
+ })
map("n", "<leader>o", telebuilt.oldfiles, { desc = "Find old." })
- map("n", "<leader>s", telebuilt.live_grep, { desc = "Find strings." })
- map("n", "<leader>i", telebuilt.help_tags, {
- desc = "find help tags."
+ map("n", "<leader>s", telebuilt_picker(telebuilt.live_grep), {
+ desc = "Find strings."
})
+ map("n", "<leader>i", telebuilt.help_tags, { desc = "find help tags." })
map("n", "<leader>l", telebuilt.lsp_document_symbols, {
desc = "Find symbols."
})
@@ -78,7 +100,9 @@ return { "nvim-telescope/telescope.nvim",
-- enable previewing in the default colorscheme switcher
telebuilt.colorscheme = function()
- require("telescope.builtin.__internal").colorscheme { enable_preview = true }
+ require("telescope.builtin.__internal").colorscheme {
+ enable_preview = true
+ }
end
end
}