typechecked optargs constructors for Sorter
This commit is contained in:
@@ -17,7 +17,7 @@ local NodeIterator = require("nvim-tree.iterators.node-iterator")
|
||||
local Filters = require("nvim-tree.explorer.filters")
|
||||
local Marks = require("nvim-tree.marks")
|
||||
local LiveFilter = require("nvim-tree.explorer.live-filter")
|
||||
local Sorters = require("nvim-tree.explorer.sorters")
|
||||
local Sorter = require("nvim-tree.explorer.sorter")
|
||||
local Clipboard = require("nvim-tree.actions.fs.clipboard")
|
||||
local Renderer = require("nvim-tree.renderer")
|
||||
|
||||
@@ -57,7 +57,7 @@ function Explorer:new(args)
|
||||
self.open = true
|
||||
self.opts = config
|
||||
|
||||
self.sorters = Sorters:create(config)
|
||||
self.sorters = Sorter(config)
|
||||
self.renderer = Renderer:new(config, self)
|
||||
self.filters = Filters:new(config, self)
|
||||
self.live_filter = LiveFilter:new(config, self)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
local Class = require("nvim-tree.class")
|
||||
local Class = require("nvim-tree.classic")
|
||||
local DirectoryNode = require("nvim-tree.node.directory")
|
||||
|
||||
local C = {}
|
||||
@@ -12,23 +12,20 @@ local C = {}
|
||||
---@field cfg SorterCfg
|
||||
---@field user fun(nodes: Node[])?
|
||||
---@field pre string?
|
||||
local Sorter = Class:new()
|
||||
local Sorter = Class:extend()
|
||||
|
||||
---@class Sorter
|
||||
---@overload fun(opts: table): Sorter
|
||||
|
||||
---@param opts table user options
|
||||
---@return Sorter
|
||||
function Sorter:create(opts)
|
||||
---@type Sorter
|
||||
local o = {
|
||||
cfg = vim.deepcopy(opts.sort),
|
||||
}
|
||||
o = self:new(o)
|
||||
function Sorter:new(opts)
|
||||
self.cfg = vim.deepcopy(opts.sort)
|
||||
|
||||
if type(o.cfg.sorter) == "function" then
|
||||
o.user = o.cfg.sorter --[[@as fun(nodes: Node[])]]
|
||||
elseif type(o.cfg.sorter) == "string" then
|
||||
o.pre = o.cfg.sorter --[[@as string]]
|
||||
if type(self.cfg.sorter) == "function" then
|
||||
self.user = self.cfg.sorter --[[@as fun(nodes: Node[])]]
|
||||
elseif type(self.cfg.sorter) == "string" then
|
||||
self.pre = self.cfg.sorter --[[@as string]]
|
||||
end
|
||||
return o
|
||||
end
|
||||
|
||||
--- Predefined comparator, defaulting to name
|
||||
Reference in New Issue
Block a user