Skip to content

Commit 6347a2c

Browse files
committed
vim: nvim-tree: revert: track bufnr via buffer-update channel
1 parent 0a437b3 commit 6347a2c

File tree

2 files changed

+14
-17
lines changed

2 files changed

+14
-17
lines changed

lua/nvim-tree/explorer/init.lua

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,10 @@ function Explorer:create_autocmds()
105105
vim.api.nvim_create_autocmd("WinLeave", {
106106
group = self.augroup_id,
107107
pattern = "NvimTree_*",
108-
callback = function()
108+
callback = function(data)
109+
if self.opts.experimental.multi_instance then
110+
log.line("dev", "WinLeave %s", vim.inspect(data, { newline = "" }))
111+
end
109112
if utils.is_nvim_tree_buf(0) then
110113
self.view:close(nil, "WinLeave")
111114
end
@@ -169,14 +172,17 @@ function Explorer:create_autocmds()
169172
vim.api.nvim_create_autocmd("BufWipeout", {
170173
group = self.augroup_id,
171174
pattern = "NvimTree_*",
172-
callback = function()
175+
callback = function(data)
176+
if self.opts.experimental.multi_instance then
177+
log.line("dev", "BufWipeout %s", vim.inspect(data, { newline = "" }))
178+
end
173179
if not utils.is_nvim_tree_buf(0) then
174180
return
175181
end
176182
if self.opts.actions.open_file.eject then
177183
self.view:prevent_buffer_override()
178184
else
179-
self.view:abandon_current_window("BufWipeout")
185+
self.view:abandon_current_window()
180186
end
181187
end,
182188
})

lua/nvim-tree/explorer/view.lua

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -131,16 +131,7 @@ function View:create_buffer(bufnr)
131131
globals.BUFNR_PER_TAB[tab] = bufnr or vim.api.nvim_create_buf(false, false)
132132

133133
if self.explorer.opts.experimental.multi_instance then
134-
local tabid = tab
135-
self.bufnr_by_tab[tabid] = globals.BUFNR_PER_TAB[tabid]
136-
137-
log.line("dev", "buffer channel attaching t%d b%d", tabid, self.bufnr_by_tab[tabid])
138-
vim.api.nvim_buf_attach(self.bufnr_by_tab[tabid], false, {
139-
on_detach = function(op, bnr)
140-
log.line("dev", "buffer channel %s t%d b%d", op, tabid, bnr)
141-
self.bufnr_by_tab[tabid] = nil
142-
end,
143-
})
134+
self.bufnr_by_tab[tab] = globals.BUFNR_PER_TAB[tab]
144135
end
145136

146137
vim.api.nvim_buf_set_name(self:get_bufnr("View:create_buffer1"), "NvimTree_" .. tab)
@@ -508,18 +499,18 @@ function View:open_in_win(opts)
508499
events._dispatch_on_tree_open()
509500
end
510501

511-
---@param callsite string
512-
function View:abandon_current_window(callsite)
502+
function View:abandon_current_window()
513503
local tab = vim.api.nvim_get_current_tabpage()
514504

515505
if self.explorer.opts.experimental.multi_instance then
516-
log.line("dev", "View:abandon_current_window(%-20.20s) t%d w%s b%s member b%s %s",
517-
callsite,
506+
log.line("dev", "View:abandon_current_window() t%d w%s b%s member b%s %s",
518507
tab,
519508
globals.TABPAGES[tab] and globals.TABPAGES[tab].winnr or nil,
520509
globals.BUFNR_PER_TAB[tab],
521510
self.bufnr_by_tab[tab],
522511
(globals.BUFNR_PER_TAB[tab] == self.bufnr_by_tab[tab]) and "" or "MISMATCH")
512+
513+
self.bufnr_by_tab[tab] = nil
523514
end
524515

525516
-- TODO multi-instance kill the buffer instead of retaining

0 commit comments

Comments
 (0)