An extensible POSIX-compatible implementation of the ed(1) text editor
git clone https://git.8pit.net/edward.git
1# Library Interface 2 3* Introduce namespaces for command names 4 * By making command names a list, e.g. `'(posix quit)` 5 * POSIX namespace should be treated as reserved 6* Documentation: Clarify interaction between `edward ed addr` and `edward ed editor` 7* `(edward ed cli)`: Allow defining custom command-line options 8* Provide dedicated types for addresses and ranges 9* Add `(chicken type)` annotations for the public API to catch more10 usage errors during compile-time instead of run-time.11* Provide an `(edward)` meta-library which imports all sub-libraries.1213# Miscellaneous1415* Consider using Declarations and (chicken type) to enable more optimizations16 * https://wiki.call-cc.org/programming-for-performance17 * https://wiki.call-cc.org/man/5/Declarations18 * https://wiki.call-cc.org/man/5/Foreign%20type%20specifiers19* In append/insert/… command: Verify that the address is valid before20 entering insert mode. For example, when performing `2a` on an empty21 file the append will only error out after all text has been entered.22* Figure out why edward is slower when compiled statically with eggs (linkage static)23* Profile larger ed inputs (e.g. as generated by a fuzzer) with24 chicken-profile and figure identify (parsing) procedures which25 could be further optimized for performance26* Improve parser error messages (mostly returns `failed char pred` currently)27 * Consider prefixing parser errors with command parser name28 (how should the `g` command be handled in this regard?)29 * Consider adding column information to parser errors30 * Add parse-with-failure-reason to more parser combinators31* Refactor parse-line in a way that it can consume end-of-file.32 Requires refactoring of parse-input-mode.33* Allow input with spaces in interactive tests34 * Probably requires rewriting the test runner in Python or something35 * Would enable adding tests for edge cases like c0fe7d15700cc1ca03198c05d3762f7516f185fe