192 lines
5.2 KiB
Lua
192 lines
5.2 KiB
Lua
local util = require("lazyvim.util")
|
|
|
|
return {
|
|
|
|
-- file explorer
|
|
{
|
|
"nvim-neo-tree/neo-tree.nvim",
|
|
cmd = "Neotree",
|
|
keys = {
|
|
{
|
|
"<leader>ft",
|
|
function()
|
|
require("neo-tree.command").execute({ toggle = true, dir = require("lazyvim.util").get_root() })
|
|
end,
|
|
desc = "NeoTree",
|
|
},
|
|
},
|
|
init = function()
|
|
vim.g.neo_tree_remove_legacy_commands = 1
|
|
end,
|
|
config = {
|
|
filesystem = {
|
|
follow_current_file = true,
|
|
hijack_netrw_behavior = "open_current",
|
|
},
|
|
},
|
|
},
|
|
|
|
-- search/replace in multiple files
|
|
{
|
|
"windwp/nvim-spectre",
|
|
keys = {
|
|
{
|
|
"<leader>sr",
|
|
function()
|
|
require("spectre").open()
|
|
end,
|
|
desc = "Replace in files (Spectre)",
|
|
},
|
|
},
|
|
},
|
|
|
|
-- fuzzy finder
|
|
{
|
|
"nvim-telescope/telescope.nvim",
|
|
cmd = "Telescope",
|
|
keys = {
|
|
{ "<leader>/", util.telescope("live_grep"), desc = "Find in Files (Grep)" },
|
|
{ "<leader><space>", util.telescope("find_files"), desc = "Find Files" },
|
|
{ "<leader>fb", "<cmd>Telescope buffers<cr>", desc = "Buffers" },
|
|
{ "<leader>ff", util.telescope("find_files"), desc = "Find Files" },
|
|
{ "<leader>fr", "<cmd>Telescope oldfiles<cr>", desc = "Recent" },
|
|
{ "<leader>gc", "<Cmd>Telescope git_commits<CR>", desc = "commits" },
|
|
{ "<leader>gs", "<Cmd>Telescope git_status<CR>", desc = "status" },
|
|
{ "<leader>ha", "<cmd>Telescope autocommands<cr>", desc = "Auto Commands" },
|
|
{ "<leader>hc", "<cmd>Telescope commands<cr>", desc = "Commands" },
|
|
{ "<leader>hf", "<cmd>Telescope filetypes<cr>", desc = "File Types" },
|
|
{ "<leader>hh", "<cmd>Telescope help_tags<cr>", desc = "Help Pages" },
|
|
{ "<leader>hk", "<cmd>Telescope keymaps<cr>", desc = "Key Maps" },
|
|
{ "<leader>hm", "<cmd>Telescope man_pages<cr>", desc = "Man Pages" },
|
|
{ "<leader>ho", "<cmd>Telescope vim_options<cr>", desc = "Options" },
|
|
{ "<leader>hs", "<cmd>Telescope highlights<cr>", desc = "Search Highlight Groups" },
|
|
{ "<leader>ht", "<cmd>Telescope builtin<cr>", desc = "Telescope" },
|
|
{ "<leader>sb", "<cmd>Telescope current_buffer_fuzzy_find<cr>", desc = "Buffer" },
|
|
{ "<leader>sc", "<cmd>Telescope command_history<cr>", desc = "Command History" },
|
|
{ "<leader>sg", util.telescope("live_grep"), desc = "Grep" },
|
|
{ "<leader>sm", "<cmd>Telescope marks<cr>", desc = "Jump to Mark" },
|
|
{ "<leader>,", "<cmd>Telescope buffers show_all_buffers=true<cr>", desc = "Switch Buffer" },
|
|
{ "<leader>:", "<cmd>Telescope command_history<cr>", desc = "Command History" },
|
|
{
|
|
"<leader>ss",
|
|
util.telescope("lsp_document_symbols", {
|
|
symbols = {
|
|
"Class",
|
|
"Function",
|
|
"Method",
|
|
"Constructor",
|
|
"Interface",
|
|
"Module",
|
|
"Struct",
|
|
"Trait",
|
|
"Field",
|
|
"Property",
|
|
},
|
|
}),
|
|
desc = "Goto Symbol",
|
|
},
|
|
},
|
|
config = true,
|
|
},
|
|
|
|
-- easily jump to any location and enhanced f/t motions for Leap
|
|
{
|
|
"ggandor/leap.nvim",
|
|
event = "VeryLazy",
|
|
dependencies = {
|
|
{ "ggandor/flit.nvim", config = { labeled_modes = "nv" } },
|
|
},
|
|
config = function()
|
|
require("leap").add_default_mappings()
|
|
end,
|
|
},
|
|
|
|
-- which-key
|
|
{
|
|
"folke/which-key.nvim",
|
|
event = "VeryLazy",
|
|
config = function()
|
|
local wk = require("which-key")
|
|
wk.setup({
|
|
show_help = false,
|
|
plugins = { spelling = true },
|
|
key_labels = { ["<leader>"] = "SPC" },
|
|
})
|
|
wk.register({
|
|
mode = { "n", "v" },
|
|
["g"] = { name = "+goto" },
|
|
["]"] = { name = "+next" },
|
|
["["] = { name = "+prev" },
|
|
["<leader>b"] = { name = "+buffer" },
|
|
["<leader>c"] = { name = "+code" },
|
|
["<leader>f"] = { name = "+file" },
|
|
["<leader>g"] = { name = "+git" },
|
|
["<leader>h"] = { name = "+help" },
|
|
["<leader>x"] = { name = "+diagnostics" },
|
|
})
|
|
end,
|
|
},
|
|
|
|
-- git signs
|
|
{
|
|
"lewis6991/gitsigns.nvim",
|
|
event = "BufReadPre",
|
|
config = {
|
|
signs = {
|
|
add = { text = "▎" },
|
|
change = { text = "▎" },
|
|
delete = { text = "契" },
|
|
topdelete = { text = "契" },
|
|
changedelete = { text = "▎" },
|
|
untracked = { text = "▎" },
|
|
},
|
|
},
|
|
},
|
|
|
|
-- references
|
|
{
|
|
"RRethy/vim-illuminate",
|
|
event = "BufReadPost",
|
|
config = function()
|
|
require("illuminate").configure({ delay = 200 })
|
|
end,
|
|
keys = {
|
|
{
|
|
"]]",
|
|
function()
|
|
require("illuminate").goto_next_reference(false)
|
|
end,
|
|
desc = "Next Reference",
|
|
},
|
|
{
|
|
"[[",
|
|
function()
|
|
require("illuminate").goto_prev_reference(false)
|
|
end,
|
|
desc = "Prev Reference",
|
|
},
|
|
},
|
|
},
|
|
|
|
-- buffer remove
|
|
{
|
|
"echasnovski/mini.bufremove",
|
|
keys = {
|
|
{
|
|
"<leader>bd",
|
|
function()
|
|
require("mini.bufremove").delete(0, false)
|
|
end,
|
|
desc = "Delete Buffer",
|
|
},
|
|
{
|
|
"<leader>bD",
|
|
function()
|
|
require("mini.bufremove").delete(0, true)
|
|
end,
|
|
desc = "Delete Buffer (Force)",
|
|
},
|
|
},
|
|
},
|
|
}
|