diff options
| author | David Moc <personal@cdatgoose.org> | 2026-06-03 02:26:11 +0200 |
|---|---|---|
| committer | David Moc <personal@cdatgoose.org> | 2026-06-03 02:26:11 +0200 |
| commit | c6d44836fd8ed1442e01825cb0f9f97e7bf11515 (patch) | |
| tree | d0e8cededdecafdf27476a744ac2d892d5a18620 /README.md | |
| parent | b68766967c86a6a789d65772f69f7f44939ebdf2 (diff) | |
Harden editor logging and packaging
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..7454862 --- /dev/null +++ b/README.md @@ -0,0 +1,82 @@ +# Ecex + +Ecex is a small C editor with GLFW/OpenGL rendering and C config/plugins loaded +through CCDJIT. + +## Build + +Dependencies: + +- `clang` +- `make` +- `pkg-config` +- GLFW 3 +- OpenGL + +Build and test: + +```sh +make +make check +``` + +With Guix: + +```sh +guix shell -m manifest.scm -- make check +guix build -f guix.scm +``` + +Run: + +```sh +make run +``` + +Use a config or font explicitly: + +```sh +./bin/ecex --config config/ecexrc.c +./bin/ecex --font /path/to/font.ttf +``` + +Install locally: + +```sh +make install PREFIX=$HOME/.local +``` + +`ECEX_FONT` can also point at a TTF font. `ECEX_INCLUDE` can point at the Ecex +include directory when loading configs from another working directory. + +## Useful Keys + +- `M-x`: command prompt +- `C-x C-f`: find file +- `C-x C-s`: save buffer +- `C-x b`: switch buffer +- `C-x k`: kill buffer +- `C-x d`: file browser +- `M-x messages`: open the read-only `*Messages*` buffer +- `C-s` / `C-r`: incremental search +- `C-/`: undo +- `C-S-z`: redo +- `C-x C-r`: reload config +- `C-x C-c`: quit + +The sample config in `config/ecexrc.c` enables demo plugins including Markdown, +which-key, C mode, API completion, render demo, and Tetris. + +## Development + +`make check` runs the core C tests. `make sanitize` builds the app and runs the +tests with AddressSanitizer/UBSan flags. + +Plugin API conventions are documented in `docs/plugin-api.md`. Current CCDJIT +follow-up work is tracked in `docs/ccdjit-improvements.md`. + +`guix.scm` defines a local package. It installs the binary, public headers, +sample configs, and docs, and wraps `ecex` with `ECEX_INCLUDE` and a DejaVu font +path. + +Ecex is distributed under the BSD 2-Clause License. See `LICENSE`. |
