- Introduce namespaces for command names
- By making command names a list, e.g.
'(posix quit)
- POSIX namespace should be treated as reserved
- By making command names a list, e.g.
- Documentation: Clarify interaction between
edward ed addr
andedward ed editor
(edward ed cli)
: Allow defining custom command-line options- Provide dedicated types for addresses and ranges
- Add
(chicken type)
annotations for the public API to catch more usage errors during compile-time instead of run-time. - Provide an
(edward)
meta-library which imports all sub-libraries.
- Consider using Declarations and (chicken type) to enable more optimizations
- In append/insert/… command: Verify that the address is valid before
entering insert mode. For example, when performing
2a
on an empty file the append will only error out after all text has been entered. - Figure out why edward is slower when compiled statically with eggs (linkage static)
- Profile larger ed inputs (e.g. as generated by a fuzzer) with chicken-profile and figure identify (parsing) procedures which could be further optimized for performance
- Improve parser error messages (mostly returns
failed char pred
currently)- Consider prefixing parser errors with command parser name
(how should the
g
command be handled in this regard?) - Consider adding column information to parser errors
- Add parse-with-failure-reason to more parser combinators
- Consider prefixing parser errors with command parser name
(how should the
- Refactor parse-line in a way that it can consume end-of-file. Requires refactoring of parse-input-mode.
- Allow input with spaces in interactive tests
- Probably requires rewriting the test runner in Python or something
- Would enable adding tests for edge cases like c0fe7d15700cc1ca03198c05d3762f7516f185fe