Skip to content

Latest commit

 

History

History
35 lines (32 loc) · 1.9 KB

TODO.md

File metadata and controls

35 lines (32 loc) · 1.9 KB

Library Interface

  • Introduce namespaces for command names
    • By making command names a list, e.g. '(posix quit)
    • POSIX namespace should be treated as reserved
  • Documentation: Clarify interaction between edward ed addr and edward 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.

Miscellaneous

  • 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
  • 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