Commit Graph

130 Commits

Author SHA1 Message Date
wash 9e6c3bb431 core: foreach-object: update variable definition api usage 2026-06-20 15:17:15 +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 907e0c1832 frontend: evaluate <config>/profile.bshell on startup 2026-06-15 17:41:41 +01:00
wash b8a5bd7338 frontend: update fx api usage 2026-06-15 17:41:26 +01:00
wash c68b1d2b26 runtime: update fx api usage 2026-06-15 17:41:08 +01:00
wash 0140f768cf frontend: re-organise frontend functionality; add feature and logging switches 2026-06-14 20:28:50 +01:00
wash 6f71b85522 cmake: find fx.cmdline assembly 2026-06-14 20:28:27 +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 e8ddb0b75f cmake: find fx.io and fx.diagnostics 2026-06-13 13:50:14 +01:00
wash 97a83addc8 core: write-output now writes args and input values to the pipeline rather than stdout
the runtime will handle writing any output values to the terminal if necessary. instead,
write-output can now be used to write arbitrary values into the pipeline for later commands
to use.
2026-06-13 13:49:00 +01:00
wash 8c926acd9d core: update begin_processing() cmdlet signature 2026-06-13 13:48:19 +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 8843f2d2a9 frontend: print an error message when the specified script file cannot be opened 2026-05-31 17:34:28 +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 8e2eec973a core: add a compiler option for disabling floating-point usage 2026-05-31 17:33:20 +01:00
wash 6548c3283b cmake: build-id: specify current working directory 2026-05-31 17:33:02 +01:00
wash 4a087d1000 cmake: update FindFX module 2026-05-31 17:32:44 +01:00
wash da2777717c frontend: add a compiler option for disabling floating-point usage 2026-05-31 17:32:26 +01:00
wash 290caf7aef frontend: disable all fx.term includes when interactive mode is disabled 2026-05-31 17:32:06 +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 1a311b3796 doc: sample: make the simple sample script actually simple 2026-05-30 21:10:04 +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 afab5343c4 doc: sample: add simple function example script 2026-05-30 19:54:06 +01:00
wash 0697d889c5 frontend: implement function compilation 2026-05-30 19:53:49 +01:00
wash 28abb4d2d3 frontend: implement debug printing for functions 2026-05-30 19:53:39 +01:00
wash 531191ab52 core: update pipeline api usage 2026-05-30 19:53:15 +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