149 lines
3.4 KiB
Lua
149 lines
3.4 KiB
Lua
return {
|
|
-- fuzzy matching
|
|
{
|
|
"nvim-telescope/telescope.nvim",
|
|
dependencies = {
|
|
"nvim-lua/popup.nvim",
|
|
"nvim-lua/plenary.nvim",
|
|
{ "nvim-telescope/telescope-fzf-native.nvim", build = "make" },
|
|
},
|
|
cmd = "Telescope",
|
|
config = function()
|
|
if require("util").is_available("which-key") then
|
|
require("which-key").register({ ["<leader>f"] = { name = "+find" } })
|
|
end
|
|
-- Setup up telescope fuzzy finding settings
|
|
--
|
|
-- Makes use of optionally installed external programs to work fully:
|
|
-- rg (ripgrep) for in-text searches
|
|
-- fd for quicker directory structure searches
|
|
-- lsp for a variety of lsp queries
|
|
require("telescope").setup({
|
|
defaults = {
|
|
vimgrep_arguments = {
|
|
"rg",
|
|
"--ignore-vcs",
|
|
"--hidden",
|
|
"--color=never",
|
|
"--no-heading",
|
|
"--with-filename",
|
|
"--line-number",
|
|
"--column",
|
|
"--smart-case",
|
|
},
|
|
generic_sorter = require("mini.fuzzy").get_telescope_sorter,
|
|
-- Appearance
|
|
prompt_prefix = " ",
|
|
selection_caret = " ",
|
|
color_devicons = true,
|
|
},
|
|
pickers = {
|
|
buffers = { theme = "ivy" },
|
|
oldfiles = { theme = "ivy" },
|
|
find_files = {
|
|
theme = "dropdown",
|
|
-- nice minimal picker design
|
|
borderchars = {
|
|
{ "─", "│", "─", "│", "┌", "┐", "┘", "└" },
|
|
prompt = { "─", "│", " ", "│", "┌", "┐", "│", "│" },
|
|
results = { "─", "│", "─", "│", "├", "┤", "┘", "└" },
|
|
preview = { "─", "│", "─", "│", "┌", "┐", "┘", "└" },
|
|
},
|
|
width = 0.8,
|
|
previewer = false,
|
|
prompt_title = false,
|
|
},
|
|
},
|
|
})
|
|
require("telescope").load_extension("fzf")
|
|
end,
|
|
keys = {
|
|
{
|
|
"<leader>vh",
|
|
function()
|
|
require("telescope.builtin").help_tags()
|
|
end,
|
|
desc = "help tags",
|
|
},
|
|
{
|
|
"<leader>vH",
|
|
function()
|
|
require("telescope.builtin").man_pages()
|
|
end,
|
|
desc = "man pages",
|
|
},
|
|
{
|
|
"<leader>vC",
|
|
function()
|
|
require("telescope.builtin").colorscheme(require("telescope.themes").get_ivy())
|
|
end,
|
|
desc = "colorschemes" ,
|
|
},
|
|
|
|
{
|
|
"<leader>fb",
|
|
function()
|
|
require("telescope.builtin").buffers(require("telescope.themes").get_ivy())
|
|
end,
|
|
desc = "list buffers",
|
|
},
|
|
{
|
|
"<leader>fo",
|
|
function()
|
|
require("telescope.builtin").oldfiles(require("telescope.themes").get_ivy())
|
|
end,
|
|
desc = "list old files",
|
|
},
|
|
{
|
|
"<leader>ff",
|
|
function()
|
|
require("telescope.builtin").find_files()
|
|
end,
|
|
desc = "find files",
|
|
},
|
|
{
|
|
"<leader>fh",
|
|
function()
|
|
require("telescope.builtin").find_files({ hidden = true })
|
|
end,
|
|
desc = "find hidden files",
|
|
},
|
|
{
|
|
"<leader>fw",
|
|
function()
|
|
require("telescope.builtin").live_grep()
|
|
end,
|
|
desc = "grep search",
|
|
},
|
|
{
|
|
"<leader>fg",
|
|
function()
|
|
require("telescope.builtin").git_status()
|
|
end,
|
|
desc = "git status",
|
|
},
|
|
{
|
|
"<leader>fc",
|
|
function()
|
|
require("telescope.builtin").git_bcommits()
|
|
end,
|
|
desc = "git buffer commits",
|
|
},
|
|
{
|
|
"<leader>fl",
|
|
function()
|
|
require("telescope.builtin").git_commits()
|
|
end,
|
|
desc = "git commit log",
|
|
},
|
|
{
|
|
"z=",
|
|
function()
|
|
require("telescope.builtin").spell_suggest(require("telescope.themes").get_ivy())
|
|
end,
|
|
desc = "spell suggest",
|
|
},
|
|
},
|
|
},
|
|
}
|