zellzig/README.md
LordMZTE a62e77483b
feat: change event system
this fixes a common use-after-free footgun and removes the need for a
global allocator
2022-09-02 21:03:17 +02:00

42 lines
1.1 KiB
Markdown

# zellzig
A zig framework for writing [zellij](https://zellij.dev/) plugins.
Zellzig is currently used by these project (if you use this library, please submit a PR!):
- [zellij-compact-status](https://mzte.de/git/LordMZTE/zellij-compact-status)
# usage
For an example of how to use it, see the example directory.
Also note that you'll need a master version of the zig compiler to use zellzig.
Here's a quick overview:
```zig
const std = @import("std");
const zz = @import("zellzig");
comptime {
// register plugin
zz.createPlugin(@This());
}
pub fn init() void {
// do initialization stuff
}
pub fn update() void {
var event = zz.getEvent(my_allocator) catch return;
defer event.deinit();
// handle events
}
pub fn render(rows: i32, cols: i32) void {
// draw UI
}
```
# development
PRs are always welcome if you feel that something needs improvement/fixing! Make sure to follow [Conventional Commits](https://www.conventionalcommits.org/) and to run tests first, though.
Run tests using `gyro build test`. Note that tests are run on the native target, not WASM.
Documentation may be generated by running `gyro build -Ddocs`.