Commit Graph

175 Commits

Author SHA1 Message Date
Benedikt Peetz e8a3370dce fix(src/config/so): Ensure that the plugin keeps running 2024-05-04 20:03:02 +02:00
Benedikt Peetz d76f279a05 refactor(src/ui): Allow for a repl 2024-05-04 17:43:30 +02:00
Benedikt Peetz 08c4724a94 refactor(src): Remove all matrix related code
This obviously is a big regression, but having this matrix code in the
core trinitrix tree is no longer planned. And if we start writing the
matrix cbs, referring to this commit should be possible.
2024-05-04 15:43:31 +02:00
Benedikt Peetz c233b30a52 fix(src): Ensure that the new c api can actually be used 2024-05-04 15:00:58 +02:00
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 55316f295d
docs(branding): Init 2023-12-24 07:43:36 +01:00
Benedikt Peetz dae7bb272b
chore(trinitry): Extract to separate repository 2023-12-23 22:14:17 +01:00
Benedikt Peetz 617e223064
build(trinitry/Cargo.toml): Remove unneeded dependencies 2023-12-23 22:07:14 +01:00
Benedikt Peetz 83cf118bc9
build(update.sh): Do not append to the `src/tests.rs` file 2023-12-23 22:07:11 +01:00
Benedikt Peetz 21f981f434
build(update.sh): Add trinitry to the crates to update 2023-12-23 22:06:17 +01:00
Benedikt Peetz 103944f605
tests(trinitry): Add some sort of fuzzing 2023-12-23 22:05:41 +01:00
Benedikt Peetz 2c51bf073e
feat(trinitry): Initialize the parsing crate 2023-12-23 22:05:38 +01:00
Benedikt Peetz fcdfb4488b
chore(trixy, keymaps): Extract the libraries to their own repository 2023-12-23 21:58:19 +01:00
Benedikt Peetz d95b26655f
chore(trixy-lang_parser): Apply clippy's suggestions 2023-12-22 20:56:36 +01:00
Benedikt Peetz 26e0bbb972
feat(trixy-lang_parser): Provide an api 2023-12-22 20:39:02 +01:00
Benedikt Peetz 70c4cc6f18
feat(trixy-lang_parser): Add support for doc comments
Parsing right now works by simply comparing the input string:
```
"/" -> <comment_tokenizer> -> "/" -> <normal_comment>
                          |-> "//" -> <doc_comment>
```

A better method to do this though would be to turn "//" and "///" into
keywords and simply leave the parsing to the parser module not the
tokenizer.
2023-12-22 20:32:43 +01:00
Benedikt Peetz 3503e5250c
feat(trixy-lang_parser): Add type checking (2nd stage parsing) 2023-12-22 14:57:39 +01:00
Benedikt Peetz 370aac4395
feat(trixy-lang_parser): Add support for Type
This includes rust like generic types like:
```
Option<T>
Result<T, E>
```
2023-12-19 17:27:13 +01:00
Benedikt Peetz be066afe23
feat(trixy-lang_parser): Add support for structs and enums 2023-12-18 20:50:58 +01:00
Benedikt Peetz 3a65c33b15
feat(trixy-lang_parser): Add first parser pass 2023-12-18 18:04:21 +01:00
Benedikt Peetz 74efd3eda6
chore(flake): Remove `rust-analyzer` from the devshell
Things like language servers should be handled by the developer's
editor.
2023-12-16 11:47:51 +01:00
Benedikt Peetz 5713c90445
test(flake): Add the cargo test to the `nix flake check` tests 2023-12-16 11:47:21 +01:00
Benedikt Peetz 53862a0f65
build(flake): Switch rust version back to stable 2023-12-16 11:47:02 +01:00
Benedikt Peetz 616cb4274f
fix(config/lua): Add a warning, that exiting with <C-c> is not supported 2023-12-16 11:46:10 +01:00
Benedikt Peetz 3da75f6913
feat(trixy-lang_parser): Add a lexer with error handling for trixy code 2023-12-16 11:45:23 +01:00
Benedikt Peetz cd2dbc516a
chore(trixy): Rename `language_macros` to `trixy`
The motivation behind this change is to comply with the naming scheme:
starting crate names with `tri`
2023-12-16 11:45:12 +01:00
Benedikt Peetz 44a1ad77ea
build(treewide): Update 2023-12-14 15:33:56 +01:00
Benedikt Peetz 37a0834aa0
build(flake): Use the minimal rust distribution for builds 2023-11-07 20:48:06 +01:00
Benedikt Peetz ebd3b0d476
build(treewide): Update 2023-11-07 20:47:49 +01:00
Benedikt Peetz 23ec51cec2
build(update.sh): Make adding subcrates easier 2023-11-07 20:46:18 +01:00
Benedikt Peetz 2eb6b12bd7
refactor(core): Use the new `keymaps` crate 2023-11-07 20:27:06 +01:00
Benedikt Peetz 5f69311dfa
fix(keymaps/crossterm): Implement it fully 2023-11-07 20:25:55 +01:00
Benedikt Peetz f3b3cada71
fix(keymaps): Reimplement crossterm integration 2023-11-07 20:11:28 +01:00
Benedikt Peetz 8d3a421e4c
fix(keymaps): Apply `clippy` suggestions 2023-11-07 20:00:20 +01:00
Benedikt Peetz 831831cd1c
refactor(keymaps): Remove dead code and duplicated module name (key) 2023-11-07 19:47:35 +01:00
Benedikt Peetz 2b39608f85
feat(keymaps): Separate the keymapping system into its own crate 2023-11-07 19:37:06 +01:00
Benedikt Peetz 51eed5697a
feat(keymaps): Put keymaps into a separate crate 2023-11-01 17:20:53 +01:00
Benedikt Peetz 196c392f59
build(flake): Switch to nixpkgs's wrapped mold linker
By now a wrapped version of mold exists, which thus works with the
NixOS libraries. This is obviously the same as my self-wrapped version,
but vendoring is just not important here.
2023-10-31 18:55:18 +01:00
Benedikt Peetz 66e3b362c3
build(flake): Remove language-servers from the devshell
These should always be provided by the editor, and not the devshell.
2023-10-31 18:50:46 +01:00
Benedikt Peetz 8413a30090
build(flake): Remove unused crane overrides 2023-10-31 18:50:05 +01:00
Benedikt Peetz df07c3fc24
build(flake): Replace self-packaged cranelift with rustup's
Motivation
==========
The self-packed one sort-of worked, but was rather flaky, while the one
from rustup obviously works, as it's an officially distributed part.

Running it
==========
Instead of the `cargo clif [build, etc.]` you now need to run (on nightly):
```
RUSTFLAGS="-Zcodegen-backend=cranelift" cargo build
```

Performance
===========
On my system I noticed, that a debug build takes around 20 sec *more*
with cranelift, compared to the default LLVM backend.

One possible hypothesis, for that could be, that cranelift does
not link via `mold` but instead still uses GNU's `gold`.

On the other hand, the performance decrease could also be caused
by the fact, that it's an early preview and some optimizations are
still lacking.
2023-10-31 18:47:01 +01:00
Benedikt Peetz c1b426d590
build(treewide): Update 2023-10-31 18:04:18 +01:00
antifallobst a784f96603
feat(config): added plane cycling 2023-10-19 20:04:27 +02:00
antifallobst a538877b5b
refactor: restructured event sources 2023-10-19 18:14:59 +02:00
Benedikt Peetz 4e839d4e2c
fix(config/lua): Add the 'jj' mapping the insert mode
This is just here to prove that the fixes for the KeyInputPending mode
actually work
2023-10-18 23:10:44 +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 0ed99b6244
fix(config/lua): Generate the 'keymappings' table under 'std' 2023-10-18 23:03:16 +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