refactor(#2826): split global View and instance Window

This commit is contained in:
Alexander Courtis
2025-06-16 16:11:06 +10:00
parent 54439447f1
commit 8b9c9c107f
17 changed files with 282 additions and 261 deletions

View File

@@ -1,4 +1,5 @@
local log = require("nvim-tree.log")
local view = require("nvim-tree.view")
local events = require("nvim-tree.events")
local Class = require("nvim-tree.classic")
@@ -101,28 +102,28 @@ function Renderer:render_hl(bufnr, hl_range_args)
end
function Renderer:draw()
local bufnr = self.explorer.window:get_bufnr()
local bufnr = view.get_bufnr()
if not bufnr or not vim.api.nvim_buf_is_loaded(bufnr) then
return
end
local profile = log.profile_start("draw")
local cursor = vim.api.nvim_win_get_cursor(self.explorer.window:get_winnr() or 0)
local cursor = vim.api.nvim_win_get_cursor(view.get_winnr() or 0)
local builder = Builder(self.explorer):build()
self:_draw(bufnr, builder.lines, builder.hl_range_args, builder.signs, builder.extmarks, builder.virtual_lines)
if cursor and #builder.lines >= cursor[1] then
vim.api.nvim_win_set_cursor(self.explorer.window:get_winnr() or 0, cursor)
vim.api.nvim_win_set_cursor(view.get_winnr() or 0, cursor)
end
self.explorer.window:grow_from_content()
log.profile_end(profile)
events._dispatch_on_tree_rendered(bufnr, self.explorer.window:get_winnr())
events._dispatch_on_tree_rendered(bufnr, view.get_winnr())
end
return Renderer