* refactor(#2875): multi instance renderer * refactor(#2875): multi instance renderer * refactor(#2875): multi instance renderer * refactor(#2875): multi instance renderer * refactor(#2875): deal with some cyclic require * refactor(#2875): multi instance renderer * refactor(#2875): multi instance renderer * refactor(#2875): multi instance renderer * refactor(#2875): multi instance renderer * refactor(#2875): multi instance renderer * refactor(#2875): multi instance renderer * refactor(#2875): multi instance renderer * refactor(#2875): multi instance renderer * refactor(#2875): multi instance renderer * refactor(#2875): multi instance renderer * refactor(#2875): multi instance renderer
This commit is contained in:
committed by
GitHub
parent
45a93d9979
commit
03ae60313b
@@ -2,7 +2,6 @@ local builders = require "nvim-tree.explorer.node-builders"
|
||||
local git = require "nvim-tree.git"
|
||||
local log = require "nvim-tree.log"
|
||||
local notify = require "nvim-tree.notify"
|
||||
local renderer = {} -- circular dependency, will become a member
|
||||
local utils = require "nvim-tree.utils"
|
||||
local view = require "nvim-tree.view"
|
||||
local watch = require "nvim-tree.explorer.watch"
|
||||
@@ -13,19 +12,23 @@ local NodeIterator = require "nvim-tree.iterators.node-iterator"
|
||||
local Watcher = require "nvim-tree.watcher"
|
||||
|
||||
local Filters = require "nvim-tree.explorer.filters"
|
||||
local Marks = {} -- circular dependencies
|
||||
local Marks = require "nvim-tree.marks"
|
||||
local LiveFilter = require "nvim-tree.explorer.live-filter"
|
||||
local Sorters = require "nvim-tree.explorer.sorters"
|
||||
local Clipboard = {} -- circular dependencies
|
||||
local Clipboard = require "nvim-tree.actions.fs.clipboard"
|
||||
local Renderer = require "nvim-tree.renderer"
|
||||
|
||||
local FILTER_REASON = require("nvim-tree.enum").FILTER_REASON
|
||||
|
||||
local config
|
||||
|
||||
---@class Explorer
|
||||
---@field opts table user options
|
||||
---@field absolute_path string
|
||||
---@field nodes Node[]
|
||||
---@field open boolean
|
||||
---@field watcher Watcher|nil
|
||||
---@field renderer Renderer
|
||||
---@field filters Filters
|
||||
---@field live_filter LiveFilter
|
||||
---@field sorters Sorter
|
||||
@@ -48,17 +51,19 @@ function Explorer:new(path)
|
||||
return
|
||||
end
|
||||
|
||||
---@class Explorer
|
||||
local o = setmetatable({
|
||||
local o = {
|
||||
opts = config,
|
||||
absolute_path = path,
|
||||
nodes = {},
|
||||
open = true,
|
||||
sorters = Sorters:new(config),
|
||||
}, Explorer)
|
||||
}
|
||||
|
||||
setmetatable(o, self)
|
||||
self.__index = self
|
||||
|
||||
o.watcher = watch.create_watcher(o)
|
||||
o.renderer = Renderer:new(config, o)
|
||||
o.filters = Filters:new(config, o)
|
||||
o.live_filter = LiveFilter:new(config, o)
|
||||
o.marks = Marks:new(config, o)
|
||||
@@ -454,7 +459,7 @@ function Explorer:reload_explorer()
|
||||
local projects = git.reload()
|
||||
self:refresh_nodes(projects)
|
||||
if view.is_visible() then
|
||||
renderer.draw()
|
||||
self.renderer:draw()
|
||||
end
|
||||
event_running = false
|
||||
end
|
||||
@@ -467,7 +472,7 @@ function Explorer:reload_git()
|
||||
|
||||
local projects = git.reload()
|
||||
explorer_node.reload_node_status(self, projects)
|
||||
renderer.draw()
|
||||
self.renderer:draw()
|
||||
event_running = false
|
||||
end
|
||||
|
||||
@@ -475,11 +480,6 @@ function Explorer.setup(opts)
|
||||
config = opts
|
||||
require("nvim-tree.explorer.node").setup(opts)
|
||||
require("nvim-tree.explorer.watch").setup(opts)
|
||||
|
||||
renderer = require "nvim-tree.renderer"
|
||||
|
||||
Marks = require "nvim-tree.marks"
|
||||
Clipboard = require "nvim-tree.actions.fs.clipboard"
|
||||
end
|
||||
|
||||
return Explorer
|
||||
|
||||
@@ -23,10 +23,6 @@ function LiveFilter:new(opts, explorer)
|
||||
return o
|
||||
end
|
||||
|
||||
local function redraw()
|
||||
require("nvim-tree.renderer").draw()
|
||||
end
|
||||
|
||||
---@param node_ Node|nil
|
||||
local function reset_filter(self, node_)
|
||||
node_ = node_ or self.explorer
|
||||
@@ -129,7 +125,7 @@ local function record_char(self)
|
||||
vim.schedule(function()
|
||||
self.filter = vim.api.nvim_buf_get_lines(overlay_bufnr, 0, -1, false)[1]
|
||||
self:apply_filter()
|
||||
redraw()
|
||||
self.explorer.renderer:draw()
|
||||
end)
|
||||
end
|
||||
|
||||
@@ -199,7 +195,7 @@ function LiveFilter:start_filtering()
|
||||
view.View.live_filter.prev_focused_node = require("nvim-tree.lib").get_node_at_cursor()
|
||||
self.filter = self.filter or ""
|
||||
|
||||
redraw()
|
||||
self.explorer.renderer:draw()
|
||||
local row = require("nvim-tree.core").get_nodes_starting_line() - 1
|
||||
local col = #self.prefix > 0 and #self.prefix - 1 or 1
|
||||
view.set_cursor { row, col }
|
||||
@@ -215,7 +211,7 @@ function LiveFilter:clear_filter()
|
||||
|
||||
self.filter = nil
|
||||
reset_filter(self)
|
||||
redraw()
|
||||
self.explorer.renderer:draw()
|
||||
|
||||
if node then
|
||||
utils.focus_file(node.absolute_path)
|
||||
|
||||
@@ -79,7 +79,7 @@ function M.create_watcher(node)
|
||||
local explorer = require("nvim-tree.core").get_explorer()
|
||||
if explorer then
|
||||
explorer:refresh_node(node, function()
|
||||
require("nvim-tree.renderer").draw()
|
||||
explorer.renderer:draw()
|
||||
end)
|
||||
end
|
||||
end)
|
||||
|
||||
Reference in New Issue
Block a user