lua/cosmic-ui/config.lua
February 27, 2026 ยท View on GitHub
Intent
Holds plugin configuration defaults, merged setup options, module enable/disable state, and warnings for invalid usage. This module is the gatekeeper used by feature entry modules before any feature runs.
Exposed API
setup(user_opts): Validates and merges user config into module defaults, then marks config as initialized.is_setup() -> boolean: Returns whether setup has been called.get() -> table: Returns merged runtime config currently in use.module_enabled(module_name) -> boolean: Returns whether a module is enabled by setup input.module_opts(module_name) -> table|nil: Returns merged options for one module.warn_not_setup(method_name): Emits a one-time warning for APIs called before setup.warn_module_disabled(module_name): Emits a one-time warning when a disabled module is used.
Usage
local config = require("cosmic-ui.config")
config.setup({
notify_title = "CosmicUI",
rename = { enabled = true },
codeactions = { enabled = true },
formatters = { enabled = true },
})
local config = require("cosmic-ui.config")
if not config.is_setup() then
config.warn_not_setup("formatters.open(...)")
return
end
if not config.module_enabled("formatters") then
config.warn_module_disabled("formatters")
return
end