defmodule RaxolPlugin do @moduledoc """ Plugin SDK for Raxol terminal applications. Provides the tools to build, test, and manage Raxol plugins: * `Raxol.Plugin` - `use` macro with overridable callback defaults * `Raxol.Plugin.API` - Facade for loading/unloading/enabling plugins at runtime * `Raxol.Plugin.Manifest` - Cross-package manifest builder and validator * `Raxol.Plugin.Testing` - ExUnit helpers for plugin test suites * `mix raxol.gen.plugin` - Code generator for new plugins ## Quick start defmodule MyPlugin do use Raxol.Plugin @impl true def init(config), do: {:ok, %{config: config}} end See `Raxol.Plugin` for the full callback list and defaults. """ @doc """ Returns the package version. """ @spec version() :: String.t() def version, do: unquote(Mix.Project.config()[:version]) end