(nvim) reconfigure telescope

better now
This commit is contained in:
jc 2025-01-14 20:47:40 -05:00
commit a82cb3d8a5
2 changed files with 146 additions and 117 deletions

View file

@ -4,8 +4,6 @@
"catppuccin": { "branch": "main", "commit": "f67b886d65a029f12ffa298701fb8f1efd89295d" }, "catppuccin": { "branch": "main", "commit": "f67b886d65a029f12ffa298701fb8f1efd89295d" },
"cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" }, "cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" },
"conform.nvim": { "branch": "master", "commit": "70019124aa4f2e6838be9fbd2007f6d13b27a96d" }, "conform.nvim": { "branch": "master", "commit": "70019124aa4f2e6838be9fbd2007f6d13b27a96d" },
"fzf": { "branch": "master", "commit": "56fef7c8df2713261fbdbd396aa81ed23d9a945a" },
"fzf-lua": { "branch": "main", "commit": "6f7249741168c0751356e3b6c5c1e3bade833b6b" },
"git.nvim": { "branch": "main", "commit": "164daed4eff61bd6bee6f1c97cb78144b9374022" }, "git.nvim": { "branch": "main", "commit": "164daed4eff61bd6bee6f1c97cb78144b9374022" },
"gitsigns.nvim": { "branch": "main", "commit": "76d88f3b584e1f83b2aa51663a32cc6ee8d97eff" }, "gitsigns.nvim": { "branch": "main", "commit": "76d88f3b584e1f83b2aa51663a32cc6ee8d97eff" },
"harpoon": { "branch": "master", "commit": "1bc17e3e42ea3c46b33c0bbad6a880792692a1b3" }, "harpoon": { "branch": "master", "commit": "1bc17e3e42ea3c46b33c0bbad6a880792692a1b3" },
@ -36,7 +34,7 @@
"telescope-file-browser.nvim": { "branch": "master", "commit": "626998e5c1b71c130d8bc6cf7abb6709b98287bb" }, "telescope-file-browser.nvim": { "branch": "master", "commit": "626998e5c1b71c130d8bc6cf7abb6709b98287bb" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "dae2eac9d91464448b584c7949a31df8faefec56" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "dae2eac9d91464448b584c7949a31df8faefec56" },
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
"telescope.nvim": { "branch": "master", "commit": "776b509f80dd49d8205b9b0d94485568236d1192" }, "telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
"todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" },
"tokyonight.nvim": { "branch": "main", "commit": "775f82f08a3d1fb55a37fc6d3a4ab10cd7ed8a10" }, "tokyonight.nvim": { "branch": "main", "commit": "775f82f08a3d1fb55a37fc6d3a4ab10cd7ed8a10" },
"undotree": { "branch": "master", "commit": "2556c6800b210b2096b55b66e74b4cc1d9ebbe4f" }, "undotree": { "branch": "master", "commit": "2556c6800b210b2096b55b66e74b4cc1d9ebbe4f" },

View file

@ -1,7 +1,7 @@
return { return {
"nvim-telescope/telescope.nvim", "nvim-telescope/telescope.nvim",
version = "0.1.2", version = "0.1.8",
dependencies = { dependencies = {
"nvim-lua/plenary.nvim", "nvim-lua/plenary.nvim",
{ {
'nvim-telescope/telescope-fzf-native.nvim', 'nvim-telescope/telescope-fzf-native.nvim',
@ -12,124 +12,155 @@ return {
end, end,
}, },
{ {
"nvim-telescope/telescope-file-browser.nvim", "nvim-telescope/telescope-file-browser.nvim",
dependencies = { dependencies = {
"nvim-telescope/telescope.nvim", "nvim-telescope/telescope.nvim",
"nvim-lua/plenary.nvim", "nvim-lua/plenary.nvim",
}, },
enabled = true, enabled = true,
}, },
{ 'nvim-telescope/telescope-ui-select.nvim'}, { 'nvim-telescope/telescope-ui-select.nvim' },
{ 'nvim-tree/nvim-web-devicons', enabled = vim.g.have_nerd_font }, { 'nvim-tree/nvim-web-devicons', enabled = vim.g.have_nerd_font },
}, },
config = function() config = function()
local telescope = require("telescope") local telescope = require("telescope")
local actions = require("telescope.actions") local actions = require("telescope.actions")
local builtin = require("telescope.builtin") local builtin = require("telescope.builtin")
local fb_actions = require("telescope").extensions.file_browser.actions local fb_actions = require("telescope").extensions.file_browser.actions
local function telescope_buffer_dir() local function telescope_buffer_dir()
return vim.fn.expand("%:p:h") return vim.fn.expand("%:p:h")
end end
telescope.setup({ telescope.setup({
defaults = { defaults = {
mappings = { mappings = {
n = { n = {
["q"] = actions.close, ["q"] = actions.close,
}, },
}, },
}, },
extensions = { extensions = {
file_browser = { ['ui-select'] = {
theme = "dropdown", require('telescope.themes').get_dropdown(),
hijack_netrw = false, },
hidden = true, file_browser = {
mappings = { theme = "dropdown",
["i"] = { hijack_netrw = false,
["<C-w>"] = function() hidden = true,
vim.cmd("normal vbd") mappings = {
end, ["i"] = {
["<C-j>"] = function(bufnr) ["<C-w>"] = function()
actions.move_selection_next(bufnr) vim.cmd("normal vbd")
end, end,
["<C-k>"] = function(bufnr) ["<C-j>"] = function(bufnr)
actions.move_selection_previous(bufnr) actions.move_selection_next(bufnr)
end, end,
["<C-s>"] = function(bufnr) ["<C-k>"] = function(bufnr)
actions.select_vertical(bufnr) actions.move_selection_previous(bufnr)
end, end,
}, ["<C-s>"] = function(bufnr)
["n"] = { actions.select_vertical(bufnr)
["a"] = fb_actions.create, end,
["h"] = fb_actions.goto_parent_dir, },
["/"] = function() ["n"] = {
vim.cmd("startinsert") ["a"] = fb_actions.create,
end, ["h"] = fb_actions.goto_parent_dir,
["d"] = fb_actions.remove, ["/"] = function()
["e"] = fb_actions.change_cwd, vim.cmd("startinsert")
["<C-s>"] = function(bufnr) end,
actions.select_vertical(bufnr) ["d"] = fb_actions.remove,
end, ["e"] = fb_actions.change_cwd,
["<C-a>"] = function(bufnr) ["<C-s>"] = function(bufnr)
actions.toggle_all(bufnr) actions.select_vertical(bufnr)
end, end,
["<C-d>"] = function(bufnr) ["<C-a>"] = function(bufnr)
actions.move_selection_next(bufnr) actions.toggle_all(bufnr)
end, end,
["<C-u>"] = function(bufnr) ["<C-d>"] = function(bufnr)
actions.move_selection_previous(bufnr) actions.move_selection_next(bufnr)
end, end,
}, ["<C-u>"] = function(bufnr)
}, actions.move_selection_previous(bufnr)
}, end,
}, },
}) },
},
},
})
pcall(telescope.load_extension, "file_browser") pcall(telescope.load_extension, "file_browser")
pcall(telescope.load_extension, "fzf") pcall(telescope.load_extension, "fzf")
pcall(telescope.load_extension, "dap") pcall(telescope.load_extension, "ui-select")
-- Builtin pickers -- Builtin pickers
vim.keymap.set("n", "<leader>sf", function() vim.keymap.set("n", "<leader>sf", function()
builtin.find_files({ no_ignore = false, hidden = true }) builtin.find_files({
end, { desc = "[S]earch [F]iles" }) hidden = true,
vim.keymap.set("n", "<leader>sh", builtin.help_tags, { desc = "[S]earch [H]elp Tags" }) file_ignore_patterns = {
vim.keymap.set("n", "<leader>sb", builtin.buffers, { desc = "[S]earch [B]uffers" }) "node%_modules/.*",
vim.keymap.set("n", "<leader>sw", builtin.grep_string, { desc = "[S]earch [W]ord" }) "%.git/.*",
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" }) find_command = {
vim.keymap.set("n", "gr", builtin.lsp_references, { desc = "[G]o to [R]eferences", noremap = true }) "fd",
vim.keymap.set("n", "gd", builtin.lsp_definitions, { desc = "[G]o to [D]efinitions" }) "--type",
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, { desc = "[G]o to [D]eclaration" }) "f",
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, { desc = "[R]e[N]ame" }) "--color",
"never",
"--hidden",
"--no-ignore",
},
})
end, { desc = "[S]earch [F]iles" })
vim.keymap.set("n", "<leader>sh", builtin.help_tags, { desc = "[S]earch [H]elp Tags" })
vim.keymap.set("n", "<leader>sb", builtin.buffers, { desc = "[S]earch [B]uffers" })
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", "gr", builtin.lsp_references, { desc = "[G]o to [R]eferences", noremap = true })
vim.keymap.set("n", "gd", builtin.lsp_definitions, { desc = "[G]o to [D]efinitions" })
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, { desc = "[G]o to [D]eclaration" })
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, { desc = "[R]e[N]ame" })
-- Git pickers -- Git pickers
vim.keymap.set("n", "<leader>gf", builtin.git_files, { desc = "Search [G]it [F]iles" }) vim.keymap.set("n", "<leader>gf", builtin.git_files, { desc = "Search [G]it [F]iles" })
vim.keymap.set("n", "<leader>gs", builtin.git_status, { desc = "List [G]it [S]tatus" }) vim.keymap.set("n", "<leader>gs", builtin.git_status, { desc = "List [G]it [S]tatus" })
vim.keymap.set("n", "<leader>gh", builtin.git_stash, { desc = "List [G]it [S]tash" }) vim.keymap.set("n", "<leader>gh", builtin.git_stash, { desc = "List [G]it [S]tash" })
vim.keymap.set("n", "<leader>gbb", builtin.git_branches, { desc = "List [G]it [B]ranches" }) vim.keymap.set("n", "<leader>gbb", builtin.git_branches, { desc = "List [G]it [B]ranches" })
vim.keymap.set("n", "<leader>gc", builtin.git_bcommits, { desc = "List Buffer [G]it [C]ommits" }) vim.keymap.set("n", "<leader>gc", builtin.git_bcommits, { desc = "List Buffer [G]it [C]ommits" })
-- File Browser Ext -- File Browser Ext
vim.keymap.set("n", "<leader>fs", function() vim.keymap.set("n", "<leader>fs", function()
telescope.extensions.file_browser.file_browser({ telescope.extensions.file_browser.file_browser({
path = "%:p:h", path = "%:p:h",
cwd = telescope_buffer_dir(), cwd = telescope_buffer_dir(),
respect_gitignore = false, respect_gitignore = false,
hidden = true, hidden = true,
grouped = true, grouped = true,
previewer = false, previewer = false,
initial_mode = "normal", initial_mode = "normal",
layout_config = { height = 40 }, layout_config = { height = 40 },
}) })
end, { desc = "Open [F]ile [S]ystem Menu" }) end, { desc = "Open [F]ile [S]ystem Menu" })
vim.keymap.set("n", "<leader>/", function() vim.keymap.set("n", "<leader>/", function()
builtin.current_buffer_fuzzy_find(require("telescope.themes").get_dropdown({ builtin.current_buffer_fuzzy_find(require("telescope.themes").get_dropdown({
winblend = 10, winblend = 10,
previewer = false, previewer = false,
})) }))
end, { desc = "[/] Fuzzily serach in current buffer" }) end, { desc = "[/] Fuzzily serach in current buffer" })
end,
-- live grep in open files only
vim.keymap.set("n", "<leader>s/", function()
builtin.live_grep {
grep_open_files = true,
prompt_title = "Live Grep in Open Files",
}
end, { desc = "[S]search [/] in Open Files" })
-- shortcut for searching neovim config files
vim.keymap.set("n", "<leader>sn", function()
builtin.find_files { cwd = vim.fn.stdpath 'config' }
end, { desc = "[S]earch [N]eovim files" })
end,
} }