feat(win): custom views

This commit is contained in:
Folke Lemaitre 2024-11-04 22:08:56 +01:00
parent dbc1521ee1
commit 12d6f863f7
No known key found for this signature in database
GPG key ID: 41F8B1FBACAE2040
5 changed files with 50 additions and 17 deletions

View file

@ -33,11 +33,13 @@ _G.Snacks = M
---@field terminal snacks.terminal.Config
---@field lazygit snacks.lazygit.Config
---@field gitbrowse snacks.gitbrowse.Config
---@field views table<string, snacks.win.Config>
local config = {
bigfile = { enabled = true },
quickfile = { enabled = true },
statuscolumn = { enabled = true },
words = { enabled = true },
views = {},
}
---@class snacks.Config: snacks.Opts
@ -50,10 +52,17 @@ M.config = setmetatable({}, {
---@generic T: table
---@param snack string
---@param defaults T
---@param opts? T
---@param ... T[]
---@return T
function M.config.get(snack, defaults, opts)
return vim.tbl_deep_extend("force", {}, vim.deepcopy(defaults), vim.deepcopy(config[snack] or {}), opts or {})
function M.config.get(snack, defaults, ...)
return vim.tbl_deep_extend("force", {}, vim.deepcopy(defaults), vim.deepcopy(config[snack] or {}), ...)
end
--- Register a new window view config.
---@param name string
---@param defaults snacks.win.Config
function M.config.view(name, defaults)
config.views[name] = vim.tbl_deep_extend("force", vim.deepcopy(defaults), config.views[name] or {})
end
---@param opts snacks.Opts?