AtlatestRepositorysigil-hooks
sigil-hooks / treeREADME.md
1
# sigil-hooks3
Emacs-style hook system for Sigil — register named callbacks and run them on event.5
A hook is a list of functions called when a specific event occurs. Multiple6
handlers can be registered for each hook and are invoked in registration order.8
## Usage10
```scheme11
(import (sigil hooks))13
(define on-save (make-hook))15
(add-hook! on-save (lambda () (display "Saved!\n")))16
(add-hook! on-save (lambda () (display "Logged.\n")))18
(run-hook on-save)19
;; prints: Saved!20
;; Logged.21
```23
Hooks can also receive arguments via `run-hook-with-args`:25
```scheme26
(define on-file-save (make-hook))28
(add-hook! on-file-save29
(lambda (filename)30
(display "Saved: ") (display filename) (newline)))32
(run-hook-with-args on-file-save "document.txt")33
```35
## Modules37
| Module | Purpose |38
|-----------------|----------------------------------------------------------------|39
| `(sigil hooks)` | Core hook API: `make-hook`, `add-hook!`, `remove-hook!`, `clear-hook!`, `run-hook`, `run-hook-with-args`, `hook?`, `hook-empty?`. |41
## Build & Test43
```bash44
sigil deps install45
sigil build46
sigil test47
```49
## License51
BSD-3-Clause. See [LICENSE](LICENSE) for details.