local function manage_plugins() local plugins = { ["https://github.com/faerryn/plogins.nvim.git"] = {}, ["https://github.com/tpope/vim-sensible.git"] = {}, ["https://github.com/neovim/nvim-lspconfig.git"] = {}, ["https://github.com/ojroques/nvim-hardline.git"] = { packadd_hook = function() require('hardline').setup() end }, -- COQ ["https://github.com/ms-jpq/coq_nvim.git"] = {}, ["https://github.com/ms-jpq/coq.artifacts.git"] = { packadd_after = { ["https://github.com/ms-jpq/coq_nvim.git"] = true } }, -- LSP servers ["https://github.com/simrat39/rust-tools.nvim.git"] = { packadd_after = { ["https://github.com/neovim/nvim-lspconfig.git"] = true, ["https://github.com/ms-jpq/coq_nvi.git"] = true}, packadd_hook = function() local rt = require("rust-tools") local coq = require("coq") rt.setup(coq.lsp_ensure_capabilities({ server = { on_attach = function(_, bufnr) -- Hover actions vim.keymap.set("n", "", rt.hover_actions.hover_actions, { buffer = bufnr }) -- Code action groups vim.keymap.set("n", "a", rt.code_action_group.code_action_group, { buffer = bufnr }) end, }, })) end }, -- Git integration ["https://github.com/tpope/vim-fugitive.git"] = {}, ["https://github.com/airblade/vim-gitgutter.git"] = {}, } local manager = require("plogins").manage(plugins) vim.api.nvim_create_user_command("PloginsUpgrade", manager.upgrade, {}) vim.api.nvim_create_user_command("PloginsAutoremove", manager.autoremove, {}) end local plogins_source = "https://github.com/faerryn/plogins.nvim.git" local plogins_name = plogins_source:gsub("/", "%%") local plogins_dir = ("%s/site/pack/plogins/opt/%s"):format((vim.fn.stdpath("data")), plogins_name) if not vim.loop.fs_stat(plogins_dir) then vim.loop.spawn("git", { args = { "clone", "--depth", "1", plogins_source, plogins_dir } }, function(code, signal) vim.defer_fn(function() vim.cmd(("packadd %s"):format(vim.fn.fnameescape(plogins_name))) manage_plugins() end, 0) end) else vim.cmd(("packadd %s"):format(vim.fn.fnameescape(plogins_name))) manage_plugins() end