return { { dir = vim.fn.stdpath("config") .. "/custom/command-palette", name = "command-palette", dependencies = { "nvim-telescope/telescope.nvim" }, enabled = true, config = function(_, _) local palette = require("command-palette") palette.add({ { "Manage project", "", { { "Close project", "Safely close the project and then close the associated tmux pane", function() vim.api.nvim_create_autocmd({ "VimLeave" }, { pattern = { "*" }, group = vim.api.nvim_create_augroup( "tmux_close_group", { clear = true }), callback = function() vim.api.nvim_exec("!tmux kill-pane", false) end }) vim.api.nvim_exec("qa", true) end } } } }) vim.keymap.set("n", "sP", palette.open) vim.keymap.set("n", "sp", palette.open_full) vim.keymap.set("n", "sL", function() palette.open({}, "LSP Finders", { { "Treesitter", "", ":Telescope treesitter" }, { "LSP References", "", ":Telescope lsp_references" }, { "LSP Incoming Calls", "", ":Telescope lsp_incoming_calls" }, { "LSP Outgoing Calls", "", ":Telescope lsp_outgoing_calls" }, { "LSP Document Symbols", "", ":Telescope lsp_document_symbols" }, { "LSP Workspace Symbols", "", ":Telescope lsp_workspace_symbols" }, { "LSP Dynamic Workspace Symbols", "", ":Telescope lsp_dynamic_workspace_symbols" }, { "Diagnostics", "", ":Telescope diagnostics" }, { "LSP Implementations", "", ":Telescope lsp_implementations" }, { "LSP Definitions", "", ":Telescope lsp_definitions" }, { "LSP Type Definitions", "", ":Telescope lsp_type_definitions" } }) end) end }, { dir = vim.fn.stdpath("config") .. "/custom/bit-browser/", name = "bit-browser", enabled = true, dependencies = { "command-palette" }, config = function(_, _) local bitbrowser = require("bit-browser") vim.keymap.set("n", "n", bitbrowser.next) vim.keymap.set("n", "N", bitbrowser.prev) for i, v in pairs({ 'e', 'w', 'i', 'd', 's', 'g' }) do vim.keymap.set("n", "sn" .. v, function() bitbrowser.set_target(i); bitbrowser.next() end) vim.keymap.set("n", "sN" .. v, function() bitbrowser.set_target(i); bitbrowser.prev() end) end end }, { dir = vim.fn.stdpath("config") .. "/custom/save-formatter", name = "save-formatter", dependencies = { "nvim-telescope/telescope.nvim", "command-palette" }, enabled = true, config = function(_, _) local formatter = require("save-formatter") formatter.setup() vim.keymap.set("n", "Sw", function() vim.api.nvim_exec("w", true) end) local palette = require("command-palette") palette.add({ { "Save Formatter", "Automatic formatting on save", formatter .picker } }) end } }