76 lines
3.9 KiB
Lua
76 lines
3.9 KiB
Lua
vim.api.nvim_create_autocmd("PackChanged", {
|
|
group = vim.api.nvim_create_augroup("telescope-fzf-native-update", { clear = true }),
|
|
callback = function(ev)
|
|
local name, kind = ev.data.spec.name, ev.data.kind
|
|
if name == "telescope-fzf-native.nvim" and (kind == "install" or kind == "update") then
|
|
vim.system({ "make" }, { cwd = ev.data.path })
|
|
print("telescope-fzf-native make done.")
|
|
end
|
|
end,
|
|
})
|
|
|
|
vim.pack.add({
|
|
{ src = "https://github.com/nvim-telescope/telescope.nvim", version = "v0.2.1" },
|
|
"https://github.com/nvim-lua/plenary.nvim",
|
|
"https://github.com/nvim-telescope/telescope-fzf-native.nvim",
|
|
"https://gitlab.com/davvid/telescope-git-grep.nvim",
|
|
{ src = "https://github.com/nvim-telescope/telescope-frecency.nvim", version = vim.version.range("^1.0.0") },
|
|
})
|
|
|
|
local ok, builtin = pcall(require, "telescope.builtin")
|
|
if ok then
|
|
require("telescope").setup({
|
|
defaults = require("telescope.themes").get_ivy(),
|
|
})
|
|
local set = vim.keymap.set
|
|
|
|
require("telescope").load_extension("fzf")
|
|
require("telescope").load_extension("git_grep")
|
|
require("telescope").load_extension("frecency")
|
|
set("n", "<leader><space>", function()
|
|
require("telescope-frecency").start()
|
|
end, { desc = "Telescope frecency" })
|
|
set("n", "<leader>b", builtin.buffers, { desc = "Telescope buffers" })
|
|
set("n", "<leader>f", builtin.git_files, { desc = "Telescope git files" })
|
|
set("n", "<leader>l", builtin.current_buffer_fuzzy_find, { desc = "Telescope current buffer fuzzy find" })
|
|
set("n", "<leader>L", function()
|
|
builtin.live_grep({ grep_open_files = true })
|
|
end, { desc = "Telescope grep open files" })
|
|
set("n", "<leader>s", function()
|
|
builtin.live_grep({ command = "git grep" })
|
|
end, { desc = "Telescope grep open files" })
|
|
set("n", "<leader>d", builtin.diagnostics, { desc = "Telescope diagnostics" })
|
|
set("n", "<leader>f", builtin.git_files, { desc = "Telescope git files" })
|
|
set("n", "<leader>F", builtin.find_files, { desc = "Telescope find files" })
|
|
set("n", "<leader>gB", builtin.git_branches, { desc = "Telescope git branches" })
|
|
set("n", "<leader>gc", builtin.git_bcommits, { desc = "Telescope git buffer commits" })
|
|
set("n", "<leader>gC", builtin.git_commits, { desc = "Telescope git commits" })
|
|
set("n", "<leader>gs", builtin.git_status, { desc = "Telescope git status" })
|
|
set("n", "<leader>h", builtin.help_tags, { desc = "Telescope help tags" })
|
|
set("n", "<leader>H", builtin.keymaps, { desc = "Telescope keymaps" })
|
|
set("n", "<leader>xH", builtin.highlights, { desc = "Telescope highlights" })
|
|
set("n", "<leader>m", builtin.marks, { desc = "Telescope marks" })
|
|
set("n", "<leader>M", builtin.man_pages, { desc = "Telescope man pages" })
|
|
set("n", "<leader>o", builtin.oldfiles, { desc = "Telescope oldfiles" })
|
|
set("n", "<leader>qq", builtin.quickfix, { desc = "Telescope quickfix" })
|
|
set("n", "<leader>qh", builtin.quickfixhistory, { desc = "Telescope quickfix history" })
|
|
set("n", "<leader>ql", builtin.loclist, { desc = "Telescope loclist" })
|
|
set("n", "<leader>r", builtin.resume, { desc = "Telescope resume" })
|
|
set("n", "<leader>t", builtin.treesitter, { desc = "Telescope treesitter symbols" })
|
|
set("n", "<leader>R", builtin.registers, { desc = "Telescope registers" })
|
|
set("n", "<leader>s", function()
|
|
require("git_grep").live_grep()
|
|
end, { desc = "Telescope git grep" })
|
|
set("n", "<leader>S", builtin.live_grep, { desc = "Telescope live grep" })
|
|
set("n", "<leader>w", builtin.lsp_document_symbols, { desc = "Telescope document symbols" })
|
|
set("n", "<leader>W", builtin.lsp_workspace_symbols, { desc = "Telescope workspace symbols" })
|
|
set("n", "<leader>:", builtin.builtin, { desc = "Telescope builtin" })
|
|
|
|
set("n", "gd", builtin.lsp_definitions, { desc = "Goto Definition" })
|
|
set("n", "grr", builtin.lsp_references, { desc = "References" })
|
|
set("n", "gI", builtin.lsp_implementations, { desc = "Goto Implementation" })
|
|
set("n", "gy", builtin.lsp_type_definitions, { desc = "Goto T[y]pe Definition" })
|
|
else
|
|
print("plugin builtin missing")
|
|
end
|