Raxol.Terminal.Extension.ExtensionManager (Raxol v2.0.1)

View Source

Manages terminal extensions, including loading, unloading, and executing extension commands.

Summary

Functions

Emits an event to all registered handlers.

Executes a command from an extension.

Gets an extension by ID.

Gets current metrics.

Lists all loaded extensions.

Loads an extension into the manager.

Creates a new extension manager.

Unloads an extension from the manager.

Updates configuration for an extension.

Types

extension()

@type extension() :: %{
  id: String.t(),
  name: String.t(),
  version: String.t(),
  config: map(),
  commands: map(),
  events: map(),
  state: any()
}

t()

@type t() :: %Raxol.Terminal.Extension.ExtensionManager{
  command_registry: map(),
  commands: term(),
  config: map(),
  event_handlers: map(),
  events: term(),
  extensions: map(),
  metrics: map()
}

Functions

emit_event(manager, event_name)

@spec emit_event(t(), atom() | String.t()) :: {:error, any()}

Emits an event to all registered handlers.

emit_event(manager, event_name, data)

@spec emit_event(t(), atom() | String.t(), any()) ::
  {:ok, t(), list()} | {:error, any()}

execute_command(manager, command_name)

@spec execute_command(t(), String.t()) :: {:error, any()}

Executes a command from an extension.

execute_command(manager, command_name, params)

@spec execute_command(t(), String.t(), map()) :: {:ok, t(), any()} | {:error, any()}

get_extension(manager, extension_id)

@spec get_extension(t(), String.t()) :: extension() | nil

Gets an extension by ID.

get_metrics(manager)

@spec get_metrics(t()) :: map()

Gets current metrics.

list_extensions(manager)

@spec list_extensions(t()) :: [extension()]

Lists all loaded extensions.

load_extension(manager, extension)

@spec load_extension(t(), map()) :: {:ok, t()} | {:error, any()}

Loads an extension into the manager.

new()

@spec new() :: t()

Creates a new extension manager.

new(opts)

@spec new(keyword() | map()) :: t()

unload_extension(manager, extension_id)

@spec unload_extension(t(), String.t()) :: {:ok, t()} | {:error, any()}

Unloads an extension from the manager.

update_extension_config(manager, extension_id, config)

@spec update_extension_config(t(), String.t(), map()) :: {:ok, t()} | {:error, any()}

Updates configuration for an extension.