Download raw body.
NEW: editors/issy
I'd like to submit a new port for OpenBSD: editors/issy, a small
console text editor written in Zig. The source lives at
https://github.com/davidemerson/issy and is released under the ISC
license.
What it is:
issy is a gap-buffer text editor with syntax highlighting for 17
languages (including TeX/LaTeX), multi-cursor editing, incremental
search, undo/redo, and PDF export via a hand-rolled PDF 1.4 writer
with TTF/OTF font embedding. It has no runtime dependencies beyond
libc and deliberately keeps its UI minimal: a centered code column
on wide terminals, luminance-driven syntax highlighting, and a
soft right margin.
Build notes:
issy is built with `zig build -Doptimize=ReleaseSafe`. The
Makefile depends on lang/zig and redirects the zig cache into
${WRKBUILD} via ZIG_GLOBAL_CACHE_DIR / ZIG_LOCAL_CACHE_DIR in
MAKE_ENV, mirroring the pattern used by lang/zig's own Makefile.
The project's unit tests are wired to do-test and run under
`zig build test`.
As far as I can tell this is the first port in the tree that
consumes lang/zig as a build tool (lang/zig itself bootstraps
from CMake+LLVM), so there is no existing zig-based port I could
inherit from. The do-build / do-install / do-test targets are
written explicitly rather than using a module. Suggestions on
factoring this out into a lang/zig consumer module — similar to
lang/go — would be welcome if the maintainers think that's
worthwhile.
Arches:
ONLY_FOR_ARCHS = amd64 arm64, matching lang/zig. powerpc64 is
excluded because the upstream lang/zig port is marked BROKEN
there.
Testing:
I do not currently have an OpenBSD build environment to test on.
The port was prepared against the conventions documented in
https://www.openbsd.org/faq/ports/guide.html and modeled on
editors/ne and lang/zig. Please let me know if anything in the
Makefile, PLIST, or build invocation fails under a real `make
package`, and I will iterate.
Upstream note: I added OpenBSD to the `linkLibC` branch in the
project's build.zig specifically for this port, so native builds
go through libc instead of issuing raw syscalls (which modern
OpenBSD would refuse to execute).
The port directory is attached as a gzipped tarball. Extract into
ports/editors/ to produce ports/editors/issy/.
Thanks for reviewing,
David Emerson
d@nnix.com
NEW: editors/issy