ETS-backed registry for custom modeline segments.
User config and extensions register segment render functions here. The traditional shell modeline reads the registry on each render frame so config reloads take effect immediately without coupling the config layer to editor presentation modules.
Summary
Functions
Returns all custom modeline segments.
Looks up a custom segment by name.
Returns all custom segment names declared for a side, ordered by priority descending then name.
Registers or replaces a custom modeline segment from user config.
Registers or replaces a custom modeline segment for a source.
Registers a custom modeline segment and raises on invalid declarations or collisions.
Returns built-in or otherwise reserved modeline segment names that custom segments cannot use.
Clears all custom modeline segments. Used during config reload.
Clears warning-once modeline diagnostics without deleting registered segments.
Starts the process that owns the custom segment ETS table.
Unregisters one custom modeline segment.
Removes every segment owned by a source, such as one extension.
Logs a warning once for a render-time modeline segment diagnostic.
Types
Functions
@spec list() :: [Minga.Config.ModelineSegment.t()]
Returns all custom modeline segments.
@spec list(table()) :: [Minga.Config.ModelineSegment.t()]
@spec lookup(atom()) :: Minga.Config.ModelineSegment.t() | nil
Looks up a custom segment by name.
@spec lookup(table(), atom()) :: Minga.Config.ModelineSegment.t() | nil
@spec names_for_side(Minga.Config.ModelineSegment.side()) :: [atom()]
Returns all custom segment names declared for a side, ordered by priority descending then name.
@spec names_for_side(table(), Minga.Config.ModelineSegment.side()) :: [atom()]
@spec register(atom(), keyword(), Minga.Config.ModelineSegment.render_fun()) :: :ok | {:error, register_error()}
Registers or replaces a custom modeline segment from user config.
@spec register(atom(), keyword(), Minga.Config.ModelineSegment.render_fun(), source()) :: :ok | {:error, register_error()}
Registers or replaces a custom modeline segment for a source.
@spec register( table(), atom(), keyword(), Minga.Config.ModelineSegment.render_fun(), source() ) :: :ok | {:error, register_error()}
@spec register!(atom(), keyword(), Minga.Config.ModelineSegment.render_fun()) :: :ok
Registers a custom modeline segment and raises on invalid declarations or collisions.
@spec register_error_message(atom(), register_error()) :: String.t()
@spec reserved_names() :: [atom()]
Returns built-in or otherwise reserved modeline segment names that custom segments cannot use.
@spec reset() :: :ok
Clears all custom modeline segments. Used during config reload.
@spec reset(table()) :: :ok
@spec reset_warnings() :: :ok
Clears warning-once modeline diagnostics without deleting registered segments.
@spec reset_warnings(table()) :: :ok
@spec start_link(keyword()) :: GenServer.on_start()
Starts the process that owns the custom segment ETS table.
@spec unregister(atom()) :: :ok
Unregisters one custom modeline segment.
@spec unregister_source(source()) :: :ok
Removes every segment owned by a source, such as one extension.
Logs a warning once for a render-time modeline segment diagnostic.