Benedikt Peetz
838f62cb5d
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-23 16:12:22 +02:00
antifallobst
21b42bbb9e
Fix(event_handlers): removed outdated reference to the ci_output module
2023-07-22 18:01:47 +02:00
antifallobst
eac2eb2a7c
Merge branch 'master' into commands
2023-07-21 18:55:25 +00: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
c243c90cab
Fix(lua_macros): Rework to support new command focused layout
...
The internal commands are wrapped by a lua api, which allows to write
the whole thing a little bit more language agnostic.
2023-07-20 21:43:41 +02:00
Benedikt Peetz
27e3ff228c
Build(flake): Make it easier to switch to nightly
2023-07-20 21:39:38 +02:00
antifallobst
69a15e2886
Docs(Architecture): theoretically redesigned the architecture to be chat protocol independant
2023-07-20 15:47:40 +02:00
antifallobst
80b72b53c0
Docs: fix the link in the commit message format docs
2023-07-20 01:24:01 +02:00
antifallobst
80f8c1709f
Docs: update the commit message format to a modified version of the AngularJS commit message style
2023-07-20 01:21:40 +02:00
antifallobst
9c9da44341
Docs(Philosophy): Fixed a typo
2023-07-20 00:59:47 +02:00
antifallobst
36ab50b467
Docs(Philosophy): Added a WIP design philosophy for the project.
2023-07-20 00:40:21 +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
6412650686
Fix(lua_macros): Add sender trough app_data
2023-07-18 08:03:16 +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
91ea3f65ea
Refactor(lua_macros): Remove dead code
2023-07-17 07:23:36 +02:00
Benedikt Peetz
fc880d47d2
Build(Lock_files): Update
2023-07-17 06:08:32 +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
3e8722433d
Fix(lua_macros): Expand to generate the required types and functions
2023-07-16 14:01:48 +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
05d4b4d097
Docs(Commands): Documented the command system
2023-07-10 23:36:54 +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
antifallobst
3920a3e600
merge (pr): accepted rustfmt pr
2023-07-09 14:47:50 +00:00
Benedikt Peetz
1c43626fad
Build(Cargo): Update `Cargo.lock` and upgrade `Cargo.toml`
2023-07-09 10:09:53 +02:00
Benedikt Peetz
a9f72e34e6
Build(cargo): Remove wildcard version specification in `Cargo.toml`
...
Wildcard version is comparable to selecting a version depending on
the result of a dice roll. What I mean with this is, that the version
will be selected based on what the specific user already has in their
cargo registry. This means that the same codebase will compile
wonderfully on one machine but will fail with weird errors like:
`the trait 'From<crossterm::event::Event>' is not implemented for 'Input'`
on an other one.
Additionally crates.io does not accept crates with a bare wildcard
version requirement for aforementioned reasons.
Lastly using direct versions requirement allows to use `cargo upgrade`
to automatically update these requirements to their highest possible
value, as determined by SemVer. This works especially well, when adding
new dependencies with `cargo add`, as this also adds a direct version
requirement.
2023-07-09 10:09:52 +02:00
Benedikt Peetz
35225a14db
Style(treewide): Format all files with rustfmt
2023-07-09 10:09:50 +02:00
antifallobst
196641959e
Add nix flake ( #6 )
...
merge (nix): Add nix flake (#6 )
2023-07-09 06:30:41 +00:00
Benedikt Peetz
74be1c2506
Build(flake): Also add the openssl dependencies to the devShell
2023-07-09 07:53:15 +02:00
Benedikt Peetz
cc602b25ce
Build(flake): Enable direnv integration
...
[Direnv](1) in combination with some sort of [Nix integration](2)
— in this case [Nix-direnv](3) — allows for reproducible development
environments (and allows uncluttering the default PATH, as cargo and
other development tools are no longer needed in it).
Setting it up is rather easy, just see [Nix-direnv's install
instructions](4).
[1]: https://github.com/direnv/direnv
[2]: https://github.com/direnv/direnv/wiki/Nix
[3]: https://github.com/nix-community/nix-direnv
[4]: https://github.com/nix-community/nix-direnv#installation
2023-07-09 07:28:40 +02:00
Benedikt Peetz
f768d214da
Build(flake): Initialize the flake
...
A nix flake is a reproducible way to describe the building process
to [nix](1).
See [the nix download page](1), on how to install nix. Afterwards
running `nix build` in the repository will result in a successful build.
Flakes and nix-commands are still experimental so they must be enabled
as described in [the corresponding wiki entry](2)
[1]: https://nixos.org/download.html#nix
[2]: https://nixos.wiki/wiki/Flakes#Enable_flakes .
2023-07-09 07:28:19 +02:00
antifallobst
5611d8e385
feature (ui - room info): added basic infos (name & encryption status) to the main ui's 'room info' panel
2023-07-08 23:37:10 +02:00