Skip to content

Commit 444f144

Browse files
committed
feat(neovim): migrate to jiaoshijie/undotree
1 parent 688fba9 commit 444f144

File tree

6 files changed

+48
-5
lines changed

6 files changed

+48
-5
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -600,3 +600,6 @@
600600
[submodule "home/.local/share/nvim/site/pack/default/start/rtp.nvim"]
601601
path = home/.local/share/nvim/site/pack/default/start/rtp.nvim
602602
url = https://github.com/lumen-oss/rtp.nvim.git
603+
[submodule "home/.local/share/nvim/site/pack/default/opt/undotree"]
604+
path = home/.local/share/nvim/site/pack/default/opt/undotree
605+
url = https://github.com/jiaoshijie/undotree.git

home/.config/nvim/plugin/lazy.lua

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ defer.very_lazy(function()
1010
packadd("vim-speeddating")
1111
packadd("vim-dispatch")
1212
packadd("vim-abolish")
13-
packadd("undotree")
1413
packadd("targets.vim")
1514
packadd("vim-exchange")
1615
packadd("vim-easy-align")
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
local utils = require("utils")
2+
local defer = require("defer")
3+
defer.pack("undotree")
4+
5+
local with_undotree = defer.with("undotree")
6+
local call = defer.call
7+
8+
local opts = utils.create_get_opts({ noremap = true, silent = true })
9+
local map = function(mode, lhs, fname)
10+
vim.keymap.set(mode, lhs, with_undotree(call(fname)), opts({ desc = "undotree." .. fname }))
11+
end
12+
13+
map("n", "<leader>tu", "toggle")
14+
map("n", "<leader>uo", "open")
15+
map("n", "<leader>uc", "close")
16+
17+
vim.api.nvim_create_user_command("Undotree", function(opts)
18+
local args = opts.fargs
19+
local cmd = args[1]
20+
21+
if cmd == "toggle" then
22+
defer.require("undotree").toggle()
23+
elseif cmd == "open" then
24+
defer.require("undotree").open()
25+
elseif cmd == "close" then
26+
defer.require("undotree").close()
27+
else
28+
vim.notify("Invalid subcommand: " .. (cmd or ""), vim.log.levels.ERROR)
29+
end
30+
end, {
31+
nargs = 1,
32+
complete = function(_, line)
33+
local subcommands = { "toggle", "open", "close" }
34+
local input = vim.split(line, "%s+")
35+
local prefix = input[#input]
36+
37+
return vim.tbl_filter(function(cmd)
38+
return vim.startswith(cmd, prefix)
39+
end, subcommands)
40+
end,
41+
desc = "Undotree command with subcommands: toggle, open, close",
42+
})

home/.local/share/nvim/site/pack/default/opt/undotree

Lines changed: 0 additions & 1 deletion
This file was deleted.
Submodule undotree added at 3976ed6

home/.vim/plugin/toggle.vim

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
" Toggle undo tree
2-
nmap <silent> <leader>tu <cmd>UndotreeToggle<CR>
3-
41
" Toggle tagbar
52
nmap <silent> <leader>tt <cmd>TagbarToggle<CR>
63

home/.vim/plugin/undotree.vim

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
" Toggle undo tree
2+
nmap <silent> <leader>tu <cmd>UndotreeToggle<CR>

0 commit comments

Comments
 (0)