LordMZTE
a62e77483b
this fixes a common use-after-free footgun and removes the need for a global allocator
42 lines
1.1 KiB
Markdown
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`.
|