forked from dineshsalunke/nvim-config
192 lines
6.4 KiB
Lua
192 lines
6.4 KiB
Lua
return {
|
|
{
|
|
"nvim-telescope/telescope.nvim",
|
|
dependencies = {
|
|
"nvim-lua/plenary.nvim",
|
|
{ "nvim-telescope/telescope-ui-select.nvim" },
|
|
|
|
-- Useful for getting pretty icons, but requires a Nerd Font.
|
|
{ "nvim-tree/nvim-web-devicons", enabled = vim.g.have_nerd_font },
|
|
},
|
|
cmd = "Telescope",
|
|
keys = {
|
|
{
|
|
"<leader>ff",
|
|
function()
|
|
require("telescope.builtin").find_files()
|
|
end,
|
|
desc = "[ F ]ind files",
|
|
},
|
|
{
|
|
"<leader>fF",
|
|
function()
|
|
require("telescope.builtin").find_files({ hidden = true, no_ignore = true })
|
|
end,
|
|
desc = "[ F ]ind [ F ]iles",
|
|
},
|
|
|
|
{
|
|
"<leader>lg",
|
|
function()
|
|
require("telescope.builtin").live_grep()
|
|
end,
|
|
desc = "Live grep",
|
|
},
|
|
{
|
|
"<leader>gf",
|
|
function()
|
|
require("telescope.builtin").git_files()
|
|
end,
|
|
desc = "Git files",
|
|
},
|
|
{
|
|
"<leader>gs",
|
|
function()
|
|
require("telescope.builtin").git_status()
|
|
end,
|
|
desc = "Git status",
|
|
},
|
|
{
|
|
"<leader>fc",
|
|
function()
|
|
require("telescope.builtin").git_commits()
|
|
end,
|
|
desc = "Git Commits",
|
|
},
|
|
|
|
{
|
|
"<leader>of",
|
|
function()
|
|
require("telescope.builtin").oldfiles()
|
|
end,
|
|
desc = "[ O ]ld [ F ]iles",
|
|
},
|
|
|
|
{
|
|
"<leader>ds",
|
|
function()
|
|
require("telescope.builtin").lsp_document_symbols()
|
|
end,
|
|
desc = "[ D ]ocument [ S ]ymbols",
|
|
},
|
|
|
|
{
|
|
"<leader>wss",
|
|
function()
|
|
require("telescope.builtin").lsp_dynamic_workspace_symbols()
|
|
end,
|
|
desc = "[ W ]orkspace [ S ]ymbol[ s ]",
|
|
remap = true,
|
|
},
|
|
|
|
{
|
|
"<leader>lr",
|
|
function()
|
|
require("telescope.builtin").lsp_references()
|
|
end,
|
|
desc = "[L]ist [R]erefrences",
|
|
},
|
|
{
|
|
"<leader>ld",
|
|
function()
|
|
require("telescope.builtin").diagnostics()
|
|
end,
|
|
desc = "[ L ]ist [ D ]iagnostics",
|
|
},
|
|
{
|
|
"<leader>li",
|
|
function()
|
|
require("telescope.builtin").lsp_implementations()
|
|
end,
|
|
desc = "[ L ]ist [ I ]mplementation",
|
|
},
|
|
{
|
|
"<leader>ldi",
|
|
function()
|
|
require("telescope.builtin").lsp_definitions()
|
|
end,
|
|
desc = "[ L ]ist [ D ]ef[ i ]nitions",
|
|
},
|
|
{
|
|
"<leader>bff",
|
|
function()
|
|
require("telescope.builtin").current_buffer_fuzzy_find()
|
|
end,
|
|
desc = "[ L ]ist [ D ]ef[ i ]nitions",
|
|
},
|
|
},
|
|
config = function(_, opts)
|
|
local telescope = require("telescope")
|
|
local builtin = require("telescope.builtin")
|
|
|
|
telescope.setup({
|
|
extensions = {
|
|
["ui-select"] = {
|
|
require("telescope.themes").get_dropdown(),
|
|
},
|
|
},
|
|
defaults = {
|
|
prompt_prefix = "",
|
|
selection_caret = "",
|
|
sorting_strategy = "ascending",
|
|
path_display = {
|
|
"smart",
|
|
},
|
|
layout_config = {
|
|
horizontal = {
|
|
prompt_position = "top",
|
|
width = 0.75,
|
|
height = 0.65,
|
|
preview_width = 0.6,
|
|
},
|
|
},
|
|
mappings = {
|
|
i = {
|
|
["<C-k>"] = function(...)
|
|
require("telescope.actions").move_selection_previous(...)
|
|
end,
|
|
["<C-j>"] = function(...)
|
|
require("telescope.actions").move_selection_next(...)
|
|
end,
|
|
["<c-t>"] = function(...)
|
|
require("trouble.providers.telescope").open_with_trouble(...)
|
|
end,
|
|
},
|
|
n = {
|
|
q = function(...)
|
|
require("telescope.actions").close(...)
|
|
end,
|
|
["<c-t>"] = function(...)
|
|
require("trouble.providers.telescope").open_with_trouble(...)
|
|
end,
|
|
},
|
|
},
|
|
},
|
|
})
|
|
|
|
pcall(telescope.load_extension, "tnf")
|
|
pcall(telescope.load_extension, "fzf")
|
|
pcall(telescope.load_extension, "ui-select")
|
|
|
|
vim.keymap.set("n", "<leader>/", 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" })
|
|
|
|
vim.keymap.set("n", "<leader>s/", function()
|
|
builtin.live_grep({
|
|
grep_open_files = true,
|
|
prompt_title = "Live Grep in Open Files",
|
|
})
|
|
end, { desc = "[S]earch [/] in Open Files" })
|
|
|
|
vim.keymap.set("n", "<leader>sn", function()
|
|
builtin.find_files({ cwd = vim.fn.stdpath("config") })
|
|
end, { desc = "[S]earch [N]eovim files" })
|
|
end,
|
|
},
|
|
}
|