feat(nvim): better plugin loading

This commit is contained in:
Maciej Jur 2023-10-29 09:47:39 +01:00
parent b5b3d30e61
commit 029f724b02
Signed by: kamov
GPG key ID: 191CBFF5F72ECAFD
7 changed files with 37 additions and 32 deletions

View file

@ -7,22 +7,22 @@
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
"diffview.nvim": { "branch": "main", "commit": "d38c1b5266850f77f75e006bcc26213684e1e141" }, "diffview.nvim": { "branch": "main", "commit": "d38c1b5266850f77f75e006bcc26213684e1e141" },
"gitsigns.nvim": { "branch": "main", "commit": "5a9a6ac29a7805c4783cda21b80a1e361964b3f2" }, "gitsigns.nvim": { "branch": "main", "commit": "af0f583cd35286dd6f0e3ed52622728703237e50" },
"haskell-tools.nvim": { "branch": "2.x.x", "commit": "92e097c6832405fb64e4c44a7ce8bebe7836cae6" }, "haskell-tools.nvim": { "branch": "master", "commit": "a9d4290ff95c65bad11b5117109d8ca19fa6b370" },
"kanagawa.nvim": { "branch": "master", "commit": "c19b9023842697ec92caf72cd3599f7dd7be4456" }, "kanagawa.nvim": { "branch": "master", "commit": "c19b9023842697ec92caf72cd3599f7dd7be4456" },
"lazy.nvim": { "branch": "main", "commit": "e42fccc3cda70266e0841c5126de2c23e8982800" }, "lazy.nvim": { "branch": "main", "commit": "16603c6917435d8446f7357cb61095138a417085" },
"lualine.nvim": { "branch": "master", "commit": "2248ef254d0a1488a72041cfb45ca9caada6d994" }, "lualine.nvim": { "branch": "master", "commit": "2248ef254d0a1488a72041cfb45ca9caada6d994" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "09be3766669bfbabbe2863c624749d8da392c916" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "40301e1c74bc0946eece13edf2b1c561cc497491" },
"mason-nvim-dap.nvim": { "branch": "main", "commit": "f0cd12f7a8a310c58cecebddb6b219ffad1cfd0f" }, "mason-nvim-dap.nvim": { "branch": "main", "commit": "f0cd12f7a8a310c58cecebddb6b219ffad1cfd0f" },
"mason.nvim": { "branch": "main", "commit": "cd7835b15f5a4204fc37e0aa739347472121a54c" }, "mason.nvim": { "branch": "main", "commit": "cd7835b15f5a4204fc37e0aa739347472121a54c" },
"neo-tree.nvim": { "branch": "v3.x", "commit": "0b9a83e6dc47513a81fd9086440d5638683f4f17" }, "neo-tree.nvim": { "branch": "v3.x", "commit": "1236db954ce502eb5b340bcdb69aa057cc372e8d" },
"nui.nvim": { "branch": "main", "commit": "c0c8e347ceac53030f5c1ece1c5a5b6a17a25b32" }, "nui.nvim": { "branch": "main", "commit": "c0c8e347ceac53030f5c1ece1c5a5b6a17a25b32" },
"nvim-cmp": { "branch": "main", "commit": "d3a3056204e1a9dbb7c7fe36c114dc43b681768c" }, "nvim-cmp": { "branch": "main", "commit": "51260c02a8ffded8e16162dcf41a23ec90cfba62" },
"nvim-dap": { "branch": "master", "commit": "b595c820018a15b6d54bf53b5cbeaa6f2d7a27e2" }, "nvim-dap": { "branch": "master", "commit": "79dbc70eb79271ad801e4ff293887cde324c28d0" },
"nvim-dap-ui": { "branch": "master", "commit": "34160a7ce6072ef332f350ae1d4a6a501daf0159" }, "nvim-dap-ui": { "branch": "master", "commit": "34160a7ce6072ef332f350ae1d4a6a501daf0159" },
"nvim-lspconfig": { "branch": "master", "commit": "6428fcab6f3c09e934bc016c329806314384a41e" }, "nvim-lspconfig": { "branch": "master", "commit": "d0467b9574b48429debf83f8248d8cee79562586" },
"nvim-treesitter": { "branch": "master", "commit": "84544f5cd3b7c046ebe0db6763c9ce7f20f4fe23" }, "nvim-treesitter": { "branch": "master", "commit": "d2fe87062dde25e7fdadac061f6ca04541275e31" },
"nvim-web-devicons": { "branch": "master", "commit": "f0267921c845c42685968401bc49aa65e18d3e09" }, "nvim-web-devicons": { "branch": "master", "commit": "5de460ca7595806044eced31e3c36c159a493857" },
"plenary.nvim": { "branch": "master", "commit": "50012918b2fc8357b87cff2a7f7f0446e47da174" }, "plenary.nvim": { "branch": "master", "commit": "50012918b2fc8357b87cff2a7f7f0446e47da174" },
"presence.nvim": { "branch": "main", "commit": "87c857a56b7703f976d3a5ef15967d80508df6e6" }, "presence.nvim": { "branch": "main", "commit": "87c857a56b7703f976d3a5ef15967d80508df6e6" },
"rust-tools.nvim": { "branch": "master", "commit": "0cc8adab23117783a0292a0c8a2fbed1005dc645" }, "rust-tools.nvim": { "branch": "master", "commit": "0cc8adab23117783a0292a0c8a2fbed1005dc645" },

View file

@ -1,5 +1,6 @@
local U = require("utility") local U = require("utility")
return { return {
-- Editor theme -- Editor theme
@ -175,7 +176,7 @@ return {
}, },
-- Completion -- Completion
U.plugin("plugins.cmp") { require "plugins.nvim-cmp" {
"hrsh7th/nvim-cmp", "hrsh7th/nvim-cmp",
dependencies = { dependencies = {
"hrsh7th/cmp-cmdline", "hrsh7th/cmp-cmdline",
@ -196,7 +197,7 @@ return {
}, },
-- Debugger UI -- Debugger UI
U.plugin("plugins.dap-ui") { require "plugins.nvim-dap-ui" {
"rcarriga/nvim-dap-ui", "rcarriga/nvim-dap-ui",
dependencies = { dependencies = {
"mfussenegger/nvim-dap", "mfussenegger/nvim-dap",
@ -280,15 +281,15 @@ return {
}, },
-- Tools for Rust -- Tools for Rust
U.plugin("plugins.rust-tools") { require "plugins.rust-tools" {
"simrat39/rust-tools.nvim", "simrat39/rust-tools.nvim",
ft = "rust", ft = "rust",
}, },
-- Tools for Haskell -- Tools for Haskell
U.plugin("plugins.haskell-tools") { require "plugins.haskell-tools" {
"mrcjkb/haskell-tools.nvim", "mrcjkb/haskell-tools.nvim",
branch = "2.x.x", version = "^3",
ft = {"haskell", "lhaskell", "cabal", "cabalproject"}, ft = {"haskell", "lhaskell", "cabal", "cabalproject"},
dependencies = { dependencies = {
"nvim-lua/plenary.nvim", "nvim-lua/plenary.nvim",

View file

@ -32,4 +32,8 @@ function M.config()
end end
return M ---@param config table
---@return table
return function(config)
return vim.tbl_extend("keep", config, M)
end

View file

@ -1,5 +1,6 @@
local M = {} local M = {}
-- Reference: https://github.com/hrsh7th/nvim-cmp#recommended-configuration -- Reference: https://github.com/hrsh7th/nvim-cmp#recommended-configuration
function M.config() function M.config()
local cmp = require "cmp" local cmp = require "cmp"
@ -64,5 +65,9 @@ function M.config()
}) })
end end
return M
---@param config table
---@return table
return function(config)
return vim.tbl_extend("keep", config, M)
end

View file

@ -90,5 +90,8 @@ function M.config()
end end
return M ---@param config table
---@return table
return function(config)
return vim.tbl_extend("keep", config, M)
end

View file

@ -36,5 +36,9 @@ function M.config()
tools.setup(opts) tools.setup(opts)
end end
return M
---@param config table
---@return table
return function(config)
return vim.tbl_extend("keep", config, M)
end

View file

@ -3,18 +3,6 @@ local M = {}
local def_opts = {noremap = true, silent = true} local def_opts = {noremap = true, silent = true}
---Loads plugin config
---@param path string
function M.plugin(path)
local loaded = require(path)
---@param meta table
---@return table
return function(meta)
return vim.tbl_extend("keep", meta, loaded)
end
end
---@class KeymapOpts ---@class KeymapOpts
---@field [1]? string Shorthand description ---@field [1]? string Shorthand description
---@field desc? string Description ---@field desc? string Description