Benedikt Peetz
a39a0875a3
fix(src): Adapt the code to compile with trixy
...
The term "to compile" was specifically chosen, as this code does nothing
more. I would honestly be surprised if it worked in this state.
2024-05-03 21:25:09 +02:00
Benedikt Peetz
6ef6bea61c
chore(Cargo): Update to the new external crates
...
Note that this commit does not contain the needed code changes
2024-05-03 21:23:26 +02:00
Benedikt Peetz
2eb6b12bd7
refactor(core): Use the new `keymaps` crate
2023-11-07 20:27:06 +01:00
Benedikt Peetz
51eed5697a
feat(keymaps): Put keymaps into a separate crate
2023-11-01 17:20:53 +01:00
antifallobst
a538877b5b
refactor: restructured event sources
2023-10-19 18:14:59 +02:00
Benedikt Peetz
c024b73625
fix(ui): Display pending keys in KeyInputPending
2023-10-18 23:10:12 +02:00
Benedikt Peetz
18152bdded
fix(key_input): Also input pending keys, when leaving KeyInputPending
2023-10-18 23:09:09 +02:00
Benedikt Peetz
b54f8e59e8
fix(key_input): Handle shifted characters correctly
...
This commit fixes multiple bugs introduced in the new keymapping system:
When we can't find a keymapping for a string, we simply pass it
along, by calling the 'send_input_unprocessed' function with the
inputted key turned into it's string representation. Turning a shifted
key into it's repr. returned a doubly shifted string:
'A' turned into '<S-A>', which then fails to parse as a valid key
input. Thus, we simply unshifted the value.
The next bug, becoming apparent now, is caused by this: We never
reshifted the value, when we converted it into a crossterm key input
event.
2023-10-18 22:52:07 +02:00
Benedikt Peetz
9139fa2776
feat(command_interface): Support user specified keymappings
2023-10-16 14:04:03 +02:00
Benedikt Peetz
1dd9a0e4de
feat(command_interface): Add support for functions (and thus callbacks)
2023-10-14 18:46:25 +02:00
Benedikt Peetz
6745da4c71
style(treewide): Apply consistent formatting
...
I just ran `cargo fmt -- --config reorder_imports=true,imports_granularity=Crate,group_imp
orts=StdExternalCrate`
2023-09-20 19:22:56 +02:00
Benedikt Peetz
27d00c564c
feat(command_interface): Add support for namespaces
2023-09-20 19:21:44 +02:00
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