From 3611791fa9c2210801fe17f75ffd6a5a1e36a954 Mon Sep 17 00:00:00 2001 From: Oscar Wallberg Date: Tue, 21 Apr 2026 14:24:42 +0200 Subject: [PATCH] refactor(undotree): use builtin nvim.undotree --- init.lua | 2 +- lua/pack.lua | 27 ++++++++++++++++++++++++++- plugins/nvim.undotree.lua | 3 +++ plugins/undotree.lua | 1 - 4 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 plugins/nvim.undotree.lua delete mode 100644 plugins/undotree.lua diff --git a/init.lua b/init.lua index ccf3439..bda51f4 100644 --- a/init.lua +++ b/init.lua @@ -36,7 +36,7 @@ require("pack").setup({ "https://github.com/nvim-tree/nvim-tree.lua", "https://github.com/stevearc/oil.nvim", "https://github.com/hedyhli/outline.nvim", - "https://github.com/jiaoshijie/undotree", + "nvim.undotree", { "https://github.com/saghen/blink.cmp", version = vim.version.range("^1"), diff --git a/lua/pack.lua b/lua/pack.lua index cd70aea..688810f 100644 --- a/lua/pack.lua +++ b/lua/pack.lua @@ -75,6 +75,12 @@ local function load(name, required) end end +---@param src string +---@return boolean +local function is_url(src) + return src:find("://") ~= nil +end + ---@param spec string | ow.Pack.PluginSpec ---@return vim.pack.Spec local function to_pack_spec(spec) @@ -233,7 +239,26 @@ end ---@param specs (string | ow.Pack.PluginSpec)[] function M.setup(specs) - local changed = M.install(vim.tbl_map(to_pack_spec, specs), function(data) + local pack_specs = {} + for _, spec in ipairs(specs) do + local src = type(spec) == "string" and spec or spec[1] + if is_url(src) then + table.insert(pack_specs, to_pack_spec(spec)) + else + vim.cmd.packadd(src) + local runtime = + vim.api.nvim_get_runtime_file("pack/*/opt/" .. src, false) + ---@type ow.Pack.Plugin + local plugin = { + [1] = src, + name = src, + path = runtime[1] or "", + } + table.insert(M.plugins, plugin) + end + end + + local changed = M.install(pack_specs, function(data) if not data.spec.name then log.error("Missing name for plugin: %s", data.spec.src) return diff --git a/plugins/nvim.undotree.lua b/plugins/nvim.undotree.lua new file mode 100644 index 0000000..b394e2f --- /dev/null +++ b/plugins/nvim.undotree.lua @@ -0,0 +1,3 @@ +vim.keymap.set("n", "u", function() + require("undotree").open({ command = "leftabove40vnew" }) +end) diff --git a/plugins/undotree.lua b/plugins/undotree.lua deleted file mode 100644 index fcd9c8d..0000000 --- a/plugins/undotree.lua +++ /dev/null @@ -1 +0,0 @@ -vim.keymap.set("n", "u", require("undotree").toggle)