aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2023-01-04 09:37:46 +0100
committerGitHub <noreply@github.com>2023-01-04 09:37:46 +0100
commit3660962404fefcca70dbf18592204df3970edd78 (patch)
tree18394aa9f3113f2b51017f4d14748c3e462830ef /doc
parentfeat(registry): add has_package() method (#847) (diff)
downloadmason-3660962404fefcca70dbf18592204df3970edd78.tar
mason-3660962404fefcca70dbf18592204df3970edd78.tar.gz
mason-3660962404fefcca70dbf18592204df3970edd78.tar.bz2
mason-3660962404fefcca70dbf18592204df3970edd78.tar.lz
mason-3660962404fefcca70dbf18592204df3970edd78.tar.xz
mason-3660962404fefcca70dbf18592204df3970edd78.tar.zst
mason-3660962404fefcca70dbf18592204df3970edd78.zip
docs(reference): add section regarding registry events (#848)
Diffstat (limited to 'doc')
-rw-r--r--doc/reference.md32
1 files changed, 32 insertions, 0 deletions
diff --git a/doc/reference.md b/doc/reference.md
index 691f8f2c..e51ba57e 100644
--- a/doc/reference.md
+++ b/doc/reference.md
@@ -24,6 +24,7 @@ RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as de
[rfc8174]: https://tools.ietf.org/html/rfc8174
- [Architecture diagram](#architecture-diagram)
+- [Registry events](#registry-events)
- [`PackageSpec`](#packagespec)
- [`Package`](#package)
- [`Package.Parse({package_identifier})`](#packageparsepackage_identifier)
@@ -66,6 +67,37 @@ RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as de
![architecture](https://user-images.githubusercontent.com/6705160/179120955-2f093b80-4a4e-4201-8c7a-26adfa508cdf.png)
+## Registry events
+
+The `mason-registry` Lua module extends the [EventEmitter](#eventemitter) interface and emits the following events:
+
+| Event | Handler signature |
+| --------------------------- | ------------------------------------------ |
+| `package:handle` | `fun(pkg: Package, handle: InstallHandle)` |
+| `package:install:success` | `fun(pkg: Package, handle: InstallHandle)` |
+| `package:install:failed` | `fun(pkg: Package, handle: InstallHandle)` |
+| `package:uninstall:success` | `fun(pkg: Package)` |
+
+The following is an example for how to register handlers for events:
+
+```lua
+local registry = require "mason-registry"
+
+registry:on(
+ "package:handle",
+ vim.schedule_wrap(function(pkg, handle)
+ print(string.format("Installing %s", pkg.name))
+ end)
+)
+
+registry:on(
+ "package:install:success",
+ vim.schedule_wrap(function(pkg, handle)
+ print(string.format("Successfully installed %s", pkg.name))
+ end)
+)
+```
+
## `PackageSpec`
**Type:**