Skip to content

Commit c866a37

Browse files
committed
refactor(#2875): multi instance renderer
1 parent 0014008 commit c866a37

File tree

1 file changed

+19
-17
lines changed

1 file changed

+19
-17
lines changed

lua/nvim-tree/renderer/init.lua

+19-17
Original file line numberDiff line numberDiff line change
@@ -34,33 +34,20 @@ function Renderer:new(opts, explorer)
3434
return o
3535
end
3636

37-
local function render_hl(bufnr, hl)
38-
if not bufnr or not vim.api.nvim_buf_is_loaded(bufnr) then
39-
return
40-
end
41-
vim.api.nvim_buf_clear_namespace(bufnr, namespace_highlights_id, 0, -1)
42-
for _, data in ipairs(hl) do
43-
if type(data[1]) == "table" then
44-
for _, group in ipairs(data[1]) do
45-
vim.api.nvim_buf_add_highlight(bufnr, namespace_highlights_id, group, data[2], data[3], data[4])
46-
end
47-
end
48-
end
49-
end
50-
37+
---@private
5138
---@param bufnr number
5239
---@param lines string[]
5340
---@param hl_args AddHighlightArgs[]
5441
---@param signs string[]
55-
local function _draw(bufnr, lines, hl_args, signs, extmarks, virtual_lines)
42+
function Renderer:_draw(bufnr, lines, hl_args, signs, extmarks, virtual_lines)
5643
if vim.fn.has "nvim-0.10" == 1 then
5744
vim.api.nvim_set_option_value("modifiable", true, { buf = bufnr })
5845
else
5946
vim.api.nvim_buf_set_option(bufnr, "modifiable", true) ---@diagnostic disable-line: deprecated
6047
end
6148

6249
vim.api.nvim_buf_set_lines(bufnr, 0, -1, false, lines)
63-
render_hl(bufnr, hl_args)
50+
self:render_hl(bufnr, hl_args)
6451

6552
if vim.fn.has "nvim-0.10" == 1 then
6653
vim.api.nvim_set_option_value("modifiable", false, { buf = bufnr })
@@ -94,6 +81,21 @@ local function _draw(bufnr, lines, hl_args, signs, extmarks, virtual_lines)
9481
end
9582
end
9683

84+
---@private
85+
function Renderer:render_hl(bufnr, hl)
86+
if not bufnr or not vim.api.nvim_buf_is_loaded(bufnr) then
87+
return
88+
end
89+
vim.api.nvim_buf_clear_namespace(bufnr, namespace_highlights_id, 0, -1)
90+
for _, data in ipairs(hl) do
91+
if type(data[1]) == "table" then
92+
for _, group in ipairs(data[1]) do
93+
vim.api.nvim_buf_add_highlight(bufnr, namespace_highlights_id, group, data[2], data[3], data[4])
94+
end
95+
end
96+
end
97+
end
98+
9799
function Renderer:draw()
98100
local bufnr = view.get_bufnr()
99101
if not bufnr or not vim.api.nvim_buf_is_loaded(bufnr) then
@@ -107,7 +109,7 @@ function Renderer:draw()
107109

108110
local builder = Builder:new(self.opts, self.explorer):build()
109111

110-
_draw(bufnr, builder.lines, builder.hl_args, builder.signs, builder.extmarks, builder.virtual_lines)
112+
self:_draw(bufnr, builder.lines, builder.hl_args, builder.signs, builder.extmarks, builder.virtual_lines)
111113

112114
if cursor and #builder.lines >= cursor[1] then
113115
vim.api.nvim_win_set_cursor(view.get_winnr() or 0, cursor)

0 commit comments

Comments
 (0)