lua/cosmic-ui/init.lua

February 27, 2026 ยท View on GitHub

Intent

Root plugin module that users require (require("cosmic-ui")). It stores setup state indirectly via cosmic-ui.config and lazily loads feature modules (rename, codeactions, formatters) on first access.

Exposed API

setup(user_opts)

Initializes cosmic-ui config state and stores merged module options.

user_opts definition:

FieldTypeRequiredDefaultDescription
notify_titlestring|nilNo"CosmicUI"Notification title used by module logging/warnings.
renametable|nilNodisabled if omittedRename module config; set table to enable module.
rename.enabledboolean|nilNotrue when table existsExplicit enable/disable switch for rename module.
codeactionstable|nilNodisabled if omittedCodeactions module config; set table to enable module.
codeactions.enabledboolean|nilNotrue when table existsExplicit enable/disable switch for codeactions module.
formatterstable|nilNodisabled if omittedFormatters module config; set table to enable module.
formatters.enabledboolean|nilNotrue when table existsExplicit enable/disable switch for formatters module.

Module enable semantics:

  • Missing module key (rename, codeactions, formatters) means disabled.
  • enabled = false inside a module table disables that module.

is_setup() -> boolean

Returns whether setup() has already been called.

rename

Lazy-loaded proxy to require("cosmic-ui").rename module methods.

codeactions

Lazy-loaded proxy to require("cosmic-ui").codeactions module methods.

formatters

Lazy-loaded proxy to require("cosmic-ui").formatters module methods.

Usage

local CosmicUI = require("cosmic-ui")

CosmicUI.setup({
  rename = {},
  codeactions = {},
  formatters = {},
})
if require("cosmic-ui").is_setup() then
  require("cosmic-ui").codeactions.open()
end