Files
LazyVim/lua/lazyvim/plugins/editor.lua
2023-01-02 20:13:56 +01:00

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)",
},
},
},
}