Commit Graph

6 Commits

Author SHA1 Message Date
wash ad8b284869 runtime: implement an extensible line editor
the line editor supports custom keybinds and data storage, allowing for
a wide range of functionality to be implemented via plugins.

included plugins include:
* core: basic input and cursor movement.
* history: input history storage and retrieval (unfinished)
* highlight: support for colour-highlighting the line buffer (unfinished)
* syntax: parses the line buffer and uses `highlight` to apply syntax highlighting (unfinished).
* shell-integration:
  - allows a `prompt` function to be defined, which will be called to get the text to
    be used for the prompt
  - exposes key properties of the line editor to the shell environment, allowing line editor
    functionality to be extended via shell scripts.
2026-06-20 15:13:34 +01:00
wash de5058e045 cmake: link to fx.diagnostics and fx.io 2026-06-13 13:36:20 +01:00
wash ee6fdfbc48 bshell.runtime: add a compiler option for disabling floating-point usage 2026-05-31 17:30:53 +01:00
wash 338c0356ca multi: completely remove fx.term dependency when interactive support is disabled 2026-05-30 21:09:43 +01:00
wash 74695e8593 cmake: remove debug messages 2026-05-30 20:17:52 +01:00
wash edfb3e24a3 bshell: re-organise build into three separate components
bshell: the front-end binary
bshell.runtime: contains the parser, compiler, and classes needed to run bshell scripts
bshell.core: contains the builtin commandlets and aliases
2026-05-25 10:33:29 +01:00