From e2417bd758662cdfaee739b7f0f3834ed8ebaeeb Mon Sep 17 00:00:00 2001 From: Marc Jakobi Date: Mon, 10 Jun 2024 10:09:38 +0200 Subject: [PATCH] chore: cleanup some todos, implement loading hook API --- lua/lz/n/handler/init.lua | 2 -- lua/lz/n/init.lua | 3 +-- lua/lz/n/loader.lua | 8 +++++++- lua/lz/n/{types.lua => meta.lua} | 6 ++++++ lz.n-scm-1.rockspec | 7 +------ 5 files changed, 15 insertions(+), 11 deletions(-) rename lua/lz/n/{types.lua => meta.lua} (93%) diff --git a/lua/lz/n/handler/init.lua b/lua/lz/n/handler/init.lua index 74d73d7..0df0bf6 100644 --- a/lua/lz/n/handler/init.lua +++ b/lua/lz/n/handler/init.lua @@ -26,13 +26,11 @@ local function enable(plugin) for _, handler in pairs(handlers) do handler.add(plugin) end - -- TODO: Change handler add implementations to take a lz.n.Plugin end function M.disable(plugin) for _, handler in pairs(handlers) do if type(handler.del) == "function" then - -- TODO: Change handler del implementations to take a lz.n.Plugin? handler.del(plugin) end end diff --git a/lua/lz/n/init.lua b/lua/lz/n/init.lua index d8497a6..f7e32f7 100644 --- a/lua/lz/n/init.lua +++ b/lua/lz/n/init.lua @@ -2,8 +2,7 @@ local M = {} --- TODO: Is this necessary? -if not vim.loader or vim.fn.has("nvim-0.9.1") ~= 1 then +if vim.fn.has("nvim-0.9.1") ~= 1 then error("lz.n requires Neovim >= 0.9.1") end diff --git a/lua/lz/n/loader.lua b/lua/lz/n/loader.lua index 93c3b43..ee3fb8e 100644 --- a/lua/lz/n/loader.lua +++ b/lua/lz/n/loader.lua @@ -13,7 +13,13 @@ function M._load(plugin) return end require("lz.n.handler").disable(plugin) - -- TODO: Load plugin + ---@type fun(name: string) | nil + local load_impl = vim.tbl_get(vim.g, "lz_n", "load") + if type(load_impl) == "function" then + load_impl(plugin.name) + else + vim.cmd.packadd(plugin.name) + end end ---@param plugins table diff --git a/lua/lz/n/types.lua b/lua/lz/n/meta.lua similarity index 93% rename from lua/lz/n/types.lua rename to lua/lz/n/meta.lua index bd8453e..6b36d32 100644 --- a/lua/lz/n/types.lua +++ b/lua/lz/n/meta.lua @@ -76,3 +76,9 @@ error("Cannot import a meta module") ---@field import string spec module to import ---@field enabled? boolean|(fun():boolean) ---@field cond? boolean|(fun():boolean) + +---@class lz.n.Config +---@field load? fun(name: string) Function to load a plugin. Takes the plugin name (not the module name). Defaults to |packadd| if not set. + +---@type lz.n.Config +vim.g.lz_n = vim.g.lz_n diff --git a/lz.n-scm-1.rockspec b/lz.n-scm-1.rockspec index 216ad12..e388a0c 100644 --- a/lz.n-scm-1.rockspec +++ b/lz.n-scm-1.rockspec @@ -15,16 +15,11 @@ test_dependencies = { } source = { - url = 'git://github.com/mrcjkb/' .. package, + url = 'git://github.com/nvim-neorocks/' .. package, } build = { type = 'builtin', - -- TODO: Add runtime diretories here - -- copy_directories = { - -- 'doc', - -- "plugin", - -- }, }