136 lines
3.3 KiB
Lua
136 lines
3.3 KiB
Lua
-- Install and configure Telescope
|
|
-- https://github.com/nvim-telescope/telescope.nvim
|
|
return {
|
|
"nvim-telescope/telescope.nvim",
|
|
branch = "0.1.x",
|
|
dependencies = {
|
|
"nvim-lua/plenary.nvim",
|
|
-- C implementation of fzf to improve performance
|
|
{
|
|
"nvim-telescope/telescope-fzf-native.nvim",
|
|
build = "make"
|
|
},
|
|
"nvim-tree/nvim-web-devicons",
|
|
|
|
-- Extension to telescope to use Ag (or ripgrep) to filter results
|
|
'kelly-lin/telescope-ag',
|
|
-- Allow to search for snippets
|
|
'benfowler/telescope-luasnip.nvim',
|
|
-- Highlight, edit, and navigate code
|
|
'nvim-treesitter/nvim-treesitter',
|
|
'nvim-treesitter/nvim-treesitter-textobjects',
|
|
},
|
|
|
|
-- Configure Telescope
|
|
config = function()
|
|
local telescope = require("telescope")
|
|
local actions = require("telescope.actions")
|
|
|
|
telescope.setup({
|
|
defaults = {
|
|
|
|
-- Parce que c'est joli
|
|
prompt_prefix = " ",
|
|
selection_caret = " ",
|
|
path_display = { "smart" },
|
|
file_ignore_patterns = { ".git/", "node_modules" },
|
|
|
|
mappings = {
|
|
i = {
|
|
},
|
|
},
|
|
pickers = {
|
|
command_history = {
|
|
theme = "dropdown",
|
|
}
|
|
}
|
|
},
|
|
})
|
|
|
|
telescope.load_extension("fzf")
|
|
-- telescope.load_extension("luasnip")
|
|
-- telescope.load_extension("ag")
|
|
|
|
-- set keymaps
|
|
|
|
-- <leader>of for oldfiles
|
|
vim.keymap.set(
|
|
"n",
|
|
"<leader>of",
|
|
"<cmd>Telescope oldfiles<cr>",
|
|
{ desc = "[Telescope] [?] Find recently opened files " }
|
|
)
|
|
|
|
-- <leader>sb
|
|
vim.keymap.set(
|
|
"n",
|
|
"<leader>sb",
|
|
"<cmd>Telescope buffers<cr>",
|
|
{ desc = "[Telescope] [S]earch [B]uffers " }
|
|
)
|
|
|
|
-- <leader>/ to fuzzily search in current buffer
|
|
vim.keymap.set(
|
|
'n',
|
|
'<leader>/',
|
|
"<cmd>Telescope current_buffer_fuzzy_find<cr>",
|
|
{ desc = "[Telescope] [/] Fuzzily search in current buffer" })
|
|
|
|
-- <leader>sh to search help
|
|
vim.keymap.set(
|
|
"n",
|
|
"<leader>sh",
|
|
"<cmd>Telescope help_tags<cr>",
|
|
{ desc = "[Telescope] [S]earch [H]elp" }
|
|
)
|
|
|
|
-- <leader>sf to search files
|
|
vim.keymap.set(
|
|
"n",
|
|
"<leader>sf",
|
|
"<cmd>Telescope find_files<cr>",
|
|
{ desc = "[Telescope] [S]earch [F]iles" }
|
|
)
|
|
|
|
-- <leader>gf to search files in git history
|
|
vim.keymap.set(
|
|
"n",
|
|
"<leader>gf",
|
|
"<cmd>Telescope git_files<cr>",
|
|
{ desc = "[Telescope] Search [G]it [F]iles" }
|
|
)
|
|
|
|
-- <leader>sg to (rip)grep through files
|
|
vim.keymap.set(
|
|
"n",
|
|
"<leader>sg",
|
|
"<cmd>Telescope live_grep<cr>",
|
|
{ desc = "[Telescope] [S]earch by [G]rep" }
|
|
)
|
|
|
|
-- <leader>sw to search for other occurrences of the current word
|
|
vim.keymap.set(
|
|
"n",
|
|
"<leader>sw",
|
|
"<cmd>Telescope grep_string<cr>",
|
|
{ desc = "[Telescope] [S]earch current [W]ord" }
|
|
)
|
|
|
|
-- <leader>ch to search in the command history
|
|
vim.keymap.set(
|
|
"n",
|
|
"<leader>ch",
|
|
"<cmd>Telescope command_history<cr>",
|
|
{ desc = "[Telescope] [C]ommand [H]istory" }
|
|
)
|
|
|
|
-- <leader>sk to search for keymaps
|
|
vim.keymap.set(
|
|
"n",
|
|
"<leader>sk",
|
|
"<cmd>Telescope keymaps<cr>",
|
|
{ desc = "[Telescope] [S]earch [K]eymaps" }
|
|
)
|
|
end,
|
|
}
|