Commit Graph

216 Commits

Author SHA1 Message Date
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
antifallobst 98f7e806de feature: (room timeline): Changed timeline view to a scrollable list / Made single messages/events selectable / Implemented Message sending 2023-07-08 23:09:53 +02:00
antifallobst 658f05b8d3 feature (ui - rooms / events): implemented a rooms list area in the UI and live timeline updates on room timeline sync events 2023-07-08 14:45:08 +02:00
antifallobst f8bf6ee07d feature (status - rooms): Implemented a timeline event caching layer 2023-07-07 00:52:16 +02:00
antifallobst 1eb04dd23a feature (UI - main): started work on timeline view implementation 2023-07-06 20:47:06 +02:00
antifallobst a7e11c6ac0 fix (status): updating status from 'app.init_account()' 2023-07-06 17:34:55 +02:00
antifallobst b1c0007098 feature (events): added a matrix event listener that writes to the global event stream 2023-07-06 15:13:41 +02:00
antifallobst dfc87ff937 refactor (architecture): implemented an event based architecture 2023-07-04 18:32:57 +02:00
antifallobst 6ba8d3dbf0 docs (architecture): Added codebase architecture diagram 2023-07-01 22:54:20 +02:00
antifallobst 9fbf112baa refactor (logger): switched to cli_log 2023-07-01 12:44:11 +02:00
antifallobst 7bd1990eb3 feature (logging): added a logging backend and spreaded a few info log calls over the codebase 2023-06-29 20:17:54 +02:00
antifallobst 7a3bb91ba4 feature (UI - main): built a simple not yet very efficient rendering infrastructure that is capable of cycling through the planes 2023-06-29 16:33:40 +02:00
antifallobst af7c79ac75 feature (UI): made message compose in main ui a TextArea 2023-06-29 15:13:11 +02:00