nvim-tree.lua/lua/nvim-tree/actions/tree/resize.lua
2024-08-04 13:31:11 +02:00

56 lines
1.1 KiB
Lua

local M = {}
---Resize the tree, persisting the new size.
---@param opts ApiTreeResizeOpts|nil
function M.fn(opts)
local explorer = require"nvim-tree.core".get_explorer()
if not explorer then
return
end
if opts == nil then
-- reset to config values
explorer.view:configure_width()
explorer.view:resize()
return
end
local options = opts or {}
local width_cfg = options.width
if width_cfg ~= nil then
explorer.view:configure_width(width_cfg)
explorer.view:resize()
return
end
if not explorer.view:is_width_determined() then
-- {absolute} and {relative} do nothing when {width} is a function.
return
end
local absolute = options.absolute
if type(absolute) == "number" then
explorer.view:resize(absolute)
return
end
local relative = options.relative
if type(relative) == "number" then
local relative_size = tostring(relative)
if relative > 0 then
relative_size = "+" .. relative_size
end
explorer.view:resize(relative_size)
return
end
end
function M.setup(opts)
M.config = opts or {}
end
return M