return { { "nvim-neo-tree/neo-tree.nvim", cmd = "Neotree", branch = "v2.x", lazy = false, dependencies = { "MunifTanjim/nui.nvim", }, opts = { filesystem = { filtered_items = { visible = true, }, hijack_netrw_behavior = "open_default", }, window = { mappings = { ["a"] = { "add", config = { show_path = "relative", }, }, }, }, }, keys = { { "fe", function() require("neo-tree.command").execute({ toggle = true }) end, desc = "Explorer NeoTree (root dir)", }, { "e", "fe", desc = "Explorer NeoTree (root dir)", remap = true }, }, }, { "nvim-telescope/telescope.nvim", tag = "0.1.1", dependencies = { "nvim-lua/plenary.nvim", }, keys = { { "ff", function() require("telescope.builtin").find_files() end, desc = "Search files", }, { "fg", function() require("telescope.builtin").live_grep() end, desc = "Live grep", }, { "fc", function() require("telescope.builtin").git_commits() end, desc = "Git Commits", }, }, opts = { defaults = { prompt_prefix = "", selection_caret = "", mappings = { i = { [""] = function(...) require("telescope.actions").move_selection_previous(...) end, [""] = function(...) require("telescope.actions").move_selection_next(...) end, }, }, }, }, }, { "folke/which-key.nvim", event = "VeryLazy", opts = { plugins = { spelling = true, }, }, }, { "lewis6991/gitsigns.nvim", event = { "BufReadPre", "BufNewFile", }, opts = { signs = { add = { text = "▎" }, change = { text = "▎" }, delete = { text = "" }, topdelete = { text = "" }, changedelete = { text = "▎" }, untracked = { text = "▎" }, }, }, }, { "RRethy/vim-illuminate", event = { "BufReadPost", "BufNewFile", }, opts = { delay = 200, }, config = function(_, opts) require("illuminate").configure(opts) end, keys = { { "]]", desc = "Next Reference" }, { "[[", desc = "Prev Reference" }, }, }, { "echasnovski/mini.bufremove", -- stylua: ignore keys = { { "bd", function() require("mini.bufremove").delete(0, false) end, desc = "Delete Buffer" }, { "bD", function() require("mini.bufremove").delete(0, true) end, desc = "Delete Buffer (Force)" }, }, }, { "folke/trouble.nvim", dependencies = { "nvim-tree/nvim-web-devicons", }, keys = { { "xx", "TroubleToggle document_diagnostics", desc = "Document Diagnostics (Trouble)" }, { "xX", "TroubleToggle workspace_diagnostics", desc = "Workspace Diagnostics (Trouble)" }, { "xL", "TroubleToggle loclist", desc = "Location List (Trouble)" }, { "xQ", "TroubleToggle quickfix", desc = "Quickfix List (Trouble)" }, }, opts = {}, }, { "akinsho/toggleterm.nvim", opts = { winbar = { enabled = true, }, }, keys = { { "gg", function() local Terminal = require("toggleterm.terminal").Terminal local lazygit = Terminal:new({ cmd = "lazygit", hidden = true, direction = "float", float_opts = { border = "double" }, }) lazygit:toggle() end, desc = "Lazygit", }, { "", function() require("toggleterm").toggle() end, }, }, }, }