aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorDavid Moc <personal@cdatgoose.org>2026-06-03 02:26:11 +0200
committerDavid Moc <personal@cdatgoose.org>2026-06-03 02:26:11 +0200
commitc6d44836fd8ed1442e01825cb0f9f97e7bf11515 (patch)
treed0e8cededdecafdf27476a744ac2d892d5a18620 /README.md
parentb68766967c86a6a789d65772f69f7f44939ebdf2 (diff)
Harden editor logging and packaging
Diffstat (limited to 'README.md')
-rw-r--r--README.md82
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`.