36 Commits

Author SHA1 Message Date
wash f189643cf4 build: add support for disabling native command support 2026-07-19 13:34:09 +01:00
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 f622c2eba3 runtime: adjust formatting 2026-06-20 15:13:17 +01:00
wash f62713872f runtime: cmdcall: resolve() can now re-resolve an already-resolved cmdcall 2026-06-20 15:13:03 +01:00
wash 8b18421f63 runtime: parse: fix parsing of linefeed after last statement in block 2026-06-20 15:11:02 +01:00
wash 4a567a1bb9 runtime: format: add truncation and single-line support to value_writer 2026-06-20 15:10:15 +01:00
wash c262b53eab runtime: move variable definition from runtime to individual scopes 2026-06-20 15:09:10 +01:00
wash c2d3e05430 runtime: command: handle commants that don't have a source assembly 2026-06-20 15:07:20 +01:00
wash 4e6493da58 runtime: lex: fix incorrect state-transition when scanning func keyword 2026-06-20 15:06:04 +01:00
wash c68b1d2b26 runtime: update fx api usage 2026-06-15 17:41:08 +01:00
wash 21c7092752 runtime: initialise global data when the first bshell_runtime is created 2026-06-14 20:28:07 +01:00
wash 3ace32a95b runtime: native-command: remove logging from record processing 2026-06-14 20:27:46 +01:00
wash de2a747e36 runtime: format: only add trailing newline to string if one isn't already present 2026-06-14 19:40:27 +01:00
wash b3440fe231 runtime: cmdcall: implement resolution of native commands 2026-06-14 19:39:49 +01:00
wash fba7987d78 runtime: implement a bshell_command sub-class for calling native commands 2026-06-13 13:47:34 +01:00
wash 2332d48b0c runtime: adjust formatting 2026-06-13 13:47:16 +01:00
wash 73519eb7aa runtime: move value formatting functionality to a dedicated api 2026-06-13 13:47:06 +01:00
wash 4c04ca6de8 runtime: command: add an arg to begin_processing() to indicate pipeline position 2026-06-13 13:45:41 +01:00
wash de5058e045 cmake: link to fx.diagnostics and fx.io 2026-06-13 13:36:20 +01:00
wash 187296ca62 runtime: status: add descriptive messages for status codes 2026-05-31 17:34:12 +01:00
wash b9a3caf033 runtime: lex: formatting cleanup 2026-05-31 17:33:43 +01:00
wash 73ff8ba6aa bshell.runtime: disable all fx.term includes when interactive mode is disabled 2026-05-31 17:31:37 +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 ca33228e0e runtime: scriptblock: fix use of uninitialised memory 2026-05-30 20:18:41 +01:00
wash 09f64aaaba runtime: scope: fix scope_set_block not handling NULL argument properly 2026-05-30 20:18:24 +01:00
wash 74695e8593 cmake: remove debug messages 2026-05-30 20:17:52 +01:00
wash 1710f705e9 command: implement callable bytecode functions 2026-05-30 19:52:50 +01:00
wash 96bf76aabc runtime: fix memory leaks 2026-05-30 19:52:36 +01:00
wash 26b368a512 compile: fix memory leaks 2026-05-30 19:52:24 +01:00
wash a30e76e525 scriptblock: fix memory leaks 2026-05-30 19:51:52 +01:00
wash 3b39f794f9 verb: fix memory leaks 2026-05-30 19:51:29 +01:00
wash 5d6f2a5ce8 parse: lex: fix memory leaks 2026-05-30 19:50:38 +01:00
wash fec3be2140 ast: implement cleanup callbacks 2026-05-30 19:50:13 +01:00
wash f2e1d89313 runtime: update iterator usage 2026-05-25 19:14: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