2023-03-26 06:12:43 +02:00
|
|
|
---@class GruberDarkerOpts
|
2023-03-13 12:31:31 +01:00
|
|
|
---@field bold boolean
|
|
|
|
---@field italic boolean
|
|
|
|
---@field underline boolean
|
|
|
|
---@field comment_italics boolean
|
2023-01-23 05:48:37 +01:00
|
|
|
|
2023-03-26 06:12:43 +02:00
|
|
|
---@type GruberDarkerOpts
|
|
|
|
local DEFAULTS = {
|
|
|
|
bold = true,
|
|
|
|
italic = true,
|
|
|
|
underline = true,
|
|
|
|
comment_italics = true,
|
2023-01-23 05:48:37 +01:00
|
|
|
}
|
|
|
|
|
2023-03-26 06:12:43 +02:00
|
|
|
---@class ConfigMgr
|
|
|
|
---@field private resolved_opts GruberDarkerOpts
|
|
|
|
local ConfigMgr = {}
|
|
|
|
ConfigMgr.__index = ConfigMgr
|
|
|
|
|
|
|
|
---@type ConfigMgr|nil
|
|
|
|
local instance = nil
|
|
|
|
|
2023-01-23 05:48:37 +01:00
|
|
|
---Get GruberDarker user preferences
|
2023-03-26 06:12:43 +02:00
|
|
|
---@return GruberDarkerOpts
|
2023-01-23 05:48:37 +01:00
|
|
|
---@nodiscard
|
2023-03-26 06:12:43 +02:00
|
|
|
function ConfigMgr.get_opts()
|
|
|
|
if instance ~= nil then
|
|
|
|
return instance.resolved_opts
|
|
|
|
end
|
|
|
|
|
|
|
|
return DEFAULTS
|
2023-01-23 05:48:37 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
---Set GruberDarker colorscheme options
|
2023-03-26 06:12:43 +02:00
|
|
|
---@param opts? GruberDarkerOpts
|
|
|
|
function ConfigMgr.setup(opts)
|
|
|
|
if instance ~= nil then
|
|
|
|
return
|
|
|
|
end
|
|
|
|
|
|
|
|
instance = setmetatable({
|
|
|
|
resolved_opts = vim.tbl_deep_extend("force", DEFAULTS, opts or {}),
|
|
|
|
}, ConfigMgr)
|
2023-01-23 05:48:37 +01:00
|
|
|
end
|
|
|
|
|
2023-03-26 06:12:43 +02:00
|
|
|
return ConfigMgr
|