Benedikt Peetz
9a9cda535a
fix(commands/print): Add basic support for printing non-string types
2023-09-09 22:51:28 +02:00
Benedikt Peetz
357c42332f
feat(app): Add support for a Lua based configuration file
2023-09-09 21:29:46 +02:00
Benedikt Peetz
7aea23f3b6
fix(handlers/main)!: Change exit key to `q`
...
`Esc` is bound to exit a deeper mode (like `insert` or `command`) and
return to `normal` mode. This however is rather inconvenient,
when `Esc` also exits Trinitrix in general, as spamming `Esc` then
becomes impossible.
This changes also puts Trinitrix more in line with vim (although vim
does not allow exiting with `q`).
BREAKING CHANGE: To exit press `q` instead of `Esc`.
2023-09-09 19:57:49 +02:00
Benedikt Peetz
74f3b25827
feat(states): Add `command` state for command only keymappings
2023-09-09 19:57:20 +02:00
Benedikt Peetz
bc1fc0cc02
refactor(LuaCommandManager): Express the semantics of Lua code explicitly
2023-09-09 19:55:16 +02:00
Benedikt Peetz
ed37d1239f
feat(CommandTransferValue): Generalize the API to facilitate multiple languages
...
The code for the `CommandTransferValue` was deeply entrenched in the
whole Lua execution code, which is obviously not ideal. In trying to
alleviate that, I decided to generalize the API in a way, that makes
adding new languages a lot easier.
2023-09-09 19:49:56 +02:00
Benedikt Peetz
84c13fd6f8
Fix(treewide): Resolve merge conflicts
2023-07-26 22:25:08 +02:00
Benedikt Peetz
855d487693
Refactor(treewide): Remove the useless `tui_app` directory
2023-07-26 22:15:54 +02:00
Benedikt Peetz
258f784098
Fix(handlers::main): Don't close the cli after an entered command
2023-07-26 22:15:49 +02:00
Benedikt Peetz
a80245c523
Fix(handlers::command): Only send success on real success
...
The `room_message_send()` function told the user about a successful sent
room message, even if that was not the case.
2023-07-26 22:15:18 +02:00
Benedikt Peetz
f7b161fb55
Fix(handlers::command): Add the missing displayOutput handler
...
This handler is called by the lua executor, to show the final output of
a lua execution.
2023-07-26 22:15:17 +02:00
Benedikt Peetz
909fc01a48
Fix(app::command_interface): Add a `greet_multiple()` func to test tables
...
This is, like the `greet` function only here to debug the lua api. It
outputs a table.
2023-07-26 22:15:15 +02:00
Benedikt Peetz
c0a1fc0a02
Fix(app::command_interface): Add a (workaround) print function
...
The default print function prints to stdout, which obviously
doesn't work with a tui application. This wrapper however is a
rather poor workaround, as it only works with strings (lua `print`
calls `tostring` to turn non string values in something printable).
2023-07-26 22:15:14 +02:00
Benedikt Peetz
1a35bb152c
Feat(treewide): Add a way for Commands to return more than just strings
2023-07-26 22:15:07 +02:00
Benedikt Peetz
7489f06a7c
Fix(app::command_interface): Use new language_macro api
2023-07-26 22:10:19 +02:00
Benedikt Peetz
a3b49b17f4
Fix(handlers::main): Close ci after a command input
2023-07-26 22:08:07 +02:00
Benedikt Peetz
0288bdb0ad
Feat(ui): Add status panel, which shows command statuses and errors
2023-07-26 22:08:00 +02:00
Benedikt Peetz
1fe04ca5c6
Fix(lua_command::handle): Move lua_command handler to separate thread
...
This makes it possible to have lua code execute commands and receive
their output value, without risking a deadlock.
2023-07-26 22:06:42 +02:00
Benedikt Peetz
c7a4d5a8ab
Refactor(treewide): Remove the repl, reuse of e. handling is hard
...
The event handling is deeply ingrained in the ui code, the commands are
focused around the ui code, in short splitting of the event handling and
command system from the ui is intentionally hard and in my opinion not
really worth it right now.
2023-07-26 22:06:40 +02:00
Benedikt Peetz
189ae509f8
Fix(app::command_interface): Provide pre-generated file, to check syntax
2023-07-26 22:06:33 +02:00
Benedikt Peetz
ebb16a20de
Feat(treewide): Add a feature based layout and repl subcommand
...
Compiling the whole tui stack, just to debug the lua command line seems
counterproductive to me. This allows to just compile the needed parts
for a basic lua repl.
As of yet the repl is just a mock-up, as the event handling can, as of
right now, not easily be separated from the tui.
To activate specific features add specify the on the cargo command line
like this:
```
cargo run --features "cli tui"
```
or add them to the `default` feature set in the `Cargo.toml`.
2023-07-26 22:04:42 +02:00
antifallobst
993ef6af89
Fix(insert_modes): added the `Setup` insert mode as a workaround to log in until command based login is implemented
2023-07-22 16:28:47 +02:00
antifallobst
d447eb2312
Feat(App): implemented vim like modes (Normal/Insert)
2023-07-22 16:00:52 +02:00
antifallobst
4856ecc582
Fix(event_handlers): removed outdated reference to the ci_output module
2023-07-21 21:34:46 +02:00
Benedikt Peetz
a6d176b6e9
Fix(event_handlers/ci_output): Remove because not needed anymore
2023-07-20 21:50:30 +02:00
Benedikt Peetz
20c751fd7f
Fix(treewide): Update codebase to new lua_macros api
2023-07-20 21:49:56 +02:00
Benedikt Peetz
2a2c173683
Fix(command_interface): Use comments to generate the help function
...
The generation part is yet to be done, but the comments itself are
supposed to be the way of documentation.
2023-07-19 06:32:19 +02:00
Benedikt Peetz
fbd1672d03
Style(treewide): Reorder imports and modules
2023-07-19 06:28:48 +02:00
Benedikt Peetz
734328787e
Fix(ui_widgets): Add missing lifetimes
2023-07-18 08:12:33 +02:00
Benedikt Peetz
14333944dc
Fix(handles): Add command handling over the internal event stream
2023-07-18 08:11:21 +02:00
Benedikt Peetz
a413171ffe
Refactor(transmitter): Go back to plain tx,rx channels
2023-07-18 08:07:21 +02:00
Benedikt Peetz
c3a2b2d566
Fix(lua): Switch to mlua library, as it's better than rlua
2023-07-17 07:27:51 +02:00
Benedikt Peetz
866ec7c277
Refactor(ci_command_handling): Move to the event handlers
2023-07-17 00:17:53 +02:00
Benedikt Peetz
49818e0bfe
Refactor(app): Add a transmitter
2023-07-17 00:16:47 +02:00
Benedikt Peetz
ba225e29df
Fix(treewide): Use the new lua_macros macros
2023-07-16 14:19:50 +02:00
Benedikt Peetz
8f9a2a3f22
Refactor(ui): Split into multiple files
2023-07-15 12:29:35 +02:00
antifallobst
dfeac4662d
Refactor(Events): Changed the `Event` type from a struct to an enum
2023-07-14 00:06:10 +02:00
antifallobst
dd3c765ea2
Refactor(Commands): Moved high level command execution function out of app struct.
...
This refactor was done to prevent borrow checker issues, with the lua bindings
2023-07-13 23:40:17 +02:00
antifallobst
529b869e80
Feat(Commands): Started actual implementation of commands
...
List of added commands:
- Exit
- CommandLineShow
- CommandLineHide
- CyclePlanes
- CyclePlanesRev
- RoomMessageSend
2023-07-13 23:17:35 +02:00
antifallobst
33948164c4
Merge: command-backend -> master
2023-07-13 18:41:08 +02:00
Benedikt Peetz
327450c64b
Feat(command_interface): Add basic lua support
2023-07-12 21:48:51 +02:00
Benedikt Peetz
ef5afcda02
Refactor(events): Split up event handling into multiple files
2023-07-12 21:35:46 +02:00
antifallobst
b0c09f9c65
Feat(CommandBackend): Implemented the basic structure of the command handling backend
2023-07-10 22:58:07 +02:00
antifallobst
a30229b763
Fix(treewide): Replaced needless expect statements
2023-07-10 22:10:54 +02:00
antifallobst
ce59c504bd
Fix(UI): Removed unneeded mut statements
2023-07-10 21:28:37 +02:00
Benedikt Peetz
20be391b9e
Style(treewide): Remove unneeded imports
2023-07-10 21:02:01 +02:00
antifallobst
200b9143b3
feature (ui): added a cli panel to contoll the UI similar to what you have when hitting colon in vim
2023-07-10 00:10:51 +02:00
antifallobst
8d6e7c976e
feature (ui): implemented reverse plane cycling using <Shift>+<Tab> as requested in #5
2023-07-09 23:04:59 +02:00
antifallobst
7347d0c4f1
refactor (events): switched back from tui_textarea input events to raw crossterm events
2023-07-09 22:51:57 +02:00
antifallobst
1fa35adae7
fix (ui): fixed rooms scroll out of bounds error and added more detail to 'not supported message like event' view in timeline
2023-07-09 22:05:48 +02:00