# PluginContext

Source: /tuil/docs/reference/packages/plugin/api/plugin-context
Locale: en

interface exported by @mwillbanks/tuil-plugin.



{/* Generated by tooling/docs/generate-reference.ts. */}

## interface [#interface]

Public interface exported by `@mwillbanks/tuil-plugin`.

```ts
export interface PluginContext<
  TEvents extends EventMap = EventMap,
  TExtensions extends ExtensionPointMap = DefaultExtensionPoints,
> {
  readonly services: ServiceContainer;
  readonly commands: CommandRegistry;
  readonly events: EventBus<TEvents>;
  readonly routes: ExtensionRegistry<TExtensions["routes"]>;
  readonly registry: ExtensionRegistry<TExtensions["registry"]>;
  readonly workflows: ExtensionRegistry<TExtensions["workflows"]>;
  readonly theme: ExtensionRegistry<TExtensions["theme"]>;
  readonly statusBar: ExtensionRegistry<TExtensions["statusBar"]>;
  readonly appBar: ExtensionRegistry<TExtensions["appBar"]>;
  readonly menus: ExtensionRegistry<TExtensions["menus"]>;
  readonly keybindings: ExtensionRegistry<TExtensions["keybindings"]>;
  readonly dataAdapters: ExtensionRegistry<TExtensions["dataAdapters"]>;
  readonly persistenceAdapters: ExtensionRegistry<
    TExtensions["persistenceAdapters"]
  >;
  readonly operationExecutors: ExtensionRegistry<
    TExtensions["operationExecutors"]
  >;
  readonly devtools: ExtensionRegistry<TExtensions["devtools"]>;
  readonly components: ExtensionRegistry<TExtensions["components"]>;
  readonly editorProviders: ExtensionRegistry<TExtensions["editorProviders"]>;
  readonly editorCommands: ExtensionRegistry<TExtensions["editorCommands"]>;
  readonly logParsers: ExtensionRegistry<TExtensions["logParsers"]>;
  readonly themes: ExtensionRegistry<TExtensions["themes"]>;
  readonly formatAdapters: ExtensionRegistry<TExtensions["formatAdapters"]>;
  readonly renderProjections: ExtensionRegistry<
    TExtensions["renderProjections"]
  >;
  readonly devtoolsPanels: ExtensionRegistry<TExtensions["devtoolsPanels"]>;
  readonly renderers: ExtensionRegistry<TExtensions["renderers"]>;
  readonly capabilities: ReadonlySet<PluginCapability>;
  readonly signal: AbortSignal;
}
```

## Members [#members]

| Member                | Type                                                    | Required | Description                                                                                                 | Related types                                                                 |
| --------------------- | ------------------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| `services`            | `ServiceContainer`                                      | Yes      | The `services` member uses the `ServiceContainer` contract.                                                 | [`ServiceContainer`](/tuil/docs/reference/packages/core/api/service-container)     |
| `commands`            | `CommandRegistry`                                       | Yes      | The `commands` member uses the `CommandRegistry` contract.                                                  | [`CommandRegistry`](/tuil/docs/reference/packages/core/api/command-registry)       |
| `events`              | `EventBus<TEvents>`                                     | Yes      | The `events` member uses the `EventBus<TEvents>` contract.                                                  | [`EventBus`](/tuil/docs/reference/packages/events/api/event-bus)                   |
| `routes`              | `ExtensionRegistry<TExtensions["routes"]>`              | Yes      | The `routes` member uses the `ExtensionRegistry<TExtensions["routes"]>` contract.                           | [`ExtensionRegistry`](/tuil/docs/reference/packages/plugin/api/extension-registry) |
| `registry`            | `ExtensionRegistry<TExtensions["registry"]>`            | Yes      | The `registry` member uses the `ExtensionRegistry<TExtensions["registry"]>` contract.                       | [`ExtensionRegistry`](/tuil/docs/reference/packages/plugin/api/extension-registry) |
| `workflows`           | `ExtensionRegistry<TExtensions["workflows"]>`           | Yes      | The `workflows` member uses the `ExtensionRegistry<TExtensions["workflows"]>` contract.                     | [`ExtensionRegistry`](/tuil/docs/reference/packages/plugin/api/extension-registry) |
| `theme`               | `ExtensionRegistry<TExtensions["theme"]>`               | Yes      | The `theme` member uses the `ExtensionRegistry<TExtensions["theme"]>` contract.                             | [`ExtensionRegistry`](/tuil/docs/reference/packages/plugin/api/extension-registry) |
| `statusBar`           | `ExtensionRegistry<TExtensions["statusBar"]>`           | Yes      | The `statusBar` member uses the `ExtensionRegistry<TExtensions["statusBar"]>` contract.                     | [`ExtensionRegistry`](/tuil/docs/reference/packages/plugin/api/extension-registry) |
| `appBar`              | `ExtensionRegistry<TExtensions["appBar"]>`              | Yes      | The `appBar` member uses the `ExtensionRegistry<TExtensions["appBar"]>` contract.                           | [`ExtensionRegistry`](/tuil/docs/reference/packages/plugin/api/extension-registry) |
| `menus`               | `ExtensionRegistry<TExtensions["menus"]>`               | Yes      | The `menus` member uses the `ExtensionRegistry<TExtensions["menus"]>` contract.                             | [`ExtensionRegistry`](/tuil/docs/reference/packages/plugin/api/extension-registry) |
| `keybindings`         | `ExtensionRegistry<TExtensions["keybindings"]>`         | Yes      | The `keybindings` member uses the `ExtensionRegistry<TExtensions["keybindings"]>` contract.                 | [`ExtensionRegistry`](/tuil/docs/reference/packages/plugin/api/extension-registry) |
| `dataAdapters`        | `ExtensionRegistry<TExtensions["dataAdapters"]>`        | Yes      | The `dataAdapters` member uses the `ExtensionRegistry<TExtensions["dataAdapters"]>` contract.               | [`ExtensionRegistry`](/tuil/docs/reference/packages/plugin/api/extension-registry) |
| `persistenceAdapters` | `ExtensionRegistry<TExtensions["persistenceAdapters"]>` | Yes      | The `persistenceAdapters` member uses the `ExtensionRegistry<TExtensions["persistenceAdapters"]>` contract. | [`ExtensionRegistry`](/tuil/docs/reference/packages/plugin/api/extension-registry) |
| `operationExecutors`  | `ExtensionRegistry<TExtensions["operationExecutors"]>`  | Yes      | The `operationExecutors` member uses the `ExtensionRegistry<TExtensions["operationExecutors"]>` contract.   | [`ExtensionRegistry`](/tuil/docs/reference/packages/plugin/api/extension-registry) |
| `devtools`            | `ExtensionRegistry<TExtensions["devtools"]>`            | Yes      | The `devtools` member uses the `ExtensionRegistry<TExtensions["devtools"]>` contract.                       | [`ExtensionRegistry`](/tuil/docs/reference/packages/plugin/api/extension-registry) |
| `components`          | `ExtensionRegistry<TExtensions["components"]>`          | Yes      | The `components` member uses the `ExtensionRegistry<TExtensions["components"]>` contract.                   | [`ExtensionRegistry`](/tuil/docs/reference/packages/plugin/api/extension-registry) |
| `editorProviders`     | `ExtensionRegistry<TExtensions["editorProviders"]>`     | Yes      | The `editorProviders` member uses the `ExtensionRegistry<TExtensions["editorProviders"]>` contract.         | [`ExtensionRegistry`](/tuil/docs/reference/packages/plugin/api/extension-registry) |
| `editorCommands`      | `ExtensionRegistry<TExtensions["editorCommands"]>`      | Yes      | The `editorCommands` member uses the `ExtensionRegistry<TExtensions["editorCommands"]>` contract.           | [`ExtensionRegistry`](/tuil/docs/reference/packages/plugin/api/extension-registry) |
| `logParsers`          | `ExtensionRegistry<TExtensions["logParsers"]>`          | Yes      | The `logParsers` member uses the `ExtensionRegistry<TExtensions["logParsers"]>` contract.                   | [`ExtensionRegistry`](/tuil/docs/reference/packages/plugin/api/extension-registry) |
| `themes`              | `ExtensionRegistry<TExtensions["themes"]>`              | Yes      | The `themes` member uses the `ExtensionRegistry<TExtensions["themes"]>` contract.                           | [`ExtensionRegistry`](/tuil/docs/reference/packages/plugin/api/extension-registry) |
| `formatAdapters`      | `ExtensionRegistry<TExtensions["formatAdapters"]>`      | Yes      | The `formatAdapters` member uses the `ExtensionRegistry<TExtensions["formatAdapters"]>` contract.           | [`ExtensionRegistry`](/tuil/docs/reference/packages/plugin/api/extension-registry) |
| `renderProjections`   | `ExtensionRegistry<TExtensions["renderProjections"]>`   | Yes      | The `renderProjections` member uses the `ExtensionRegistry<TExtensions["renderProjections"]>` contract.     | [`ExtensionRegistry`](/tuil/docs/reference/packages/plugin/api/extension-registry) |
| `devtoolsPanels`      | `ExtensionRegistry<TExtensions["devtoolsPanels"]>`      | Yes      | The `devtoolsPanels` member uses the `ExtensionRegistry<TExtensions["devtoolsPanels"]>` contract.           | [`ExtensionRegistry`](/tuil/docs/reference/packages/plugin/api/extension-registry) |
| `renderers`           | `ExtensionRegistry<TExtensions["renderers"]>`           | Yes      | The `renderers` member uses the `ExtensionRegistry<TExtensions["renderers"]>` contract.                     | [`ExtensionRegistry`](/tuil/docs/reference/packages/plugin/api/extension-registry) |
| `capabilities`        | `ReadonlySet<PluginCapability>`                         | Yes      | The `capabilities` member uses the `ReadonlySet<PluginCapability>` contract.                                | [`PluginCapability`](/tuil/docs/reference/packages/plugin/api/plugin-capability)   |
| `signal`              | `AbortSignal`                                           | Yes      | The `signal` member uses the `AbortSignal` contract.                                                        | —                                                                             |

## Parameters [#parameters]

This declaration has no public members.

## Returns [#returns]

This declaration does not return a value.

## Throws [#throws]

No thrown errors are documented for this declaration.

## Related types [#related-types]

* [`DefaultExtensionPoints`](/tuil/docs/reference/packages/plugin/api/default-extension-points)
* [`ExtensionPointMap`](/tuil/docs/reference/packages/plugin/api/extension-point-map)
* [`ExtensionRegistry`](/tuil/docs/reference/packages/plugin/api/extension-registry)
* [`PluginCapability`](/tuil/docs/reference/packages/plugin/api/plugin-capability)

## Source [#source]

[View the secondary source reference](https://github.com/mwillbanks/tuil/blob/main/packages/plugin/src/index.ts)

## Package [#package]

[@mwillbanks/tuil-plugin](/tuil/docs/reference/packages/plugin)
