Benedikt Peetz
8228e2fd60
chore(treewide): Add some missing licenses
2024-05-04 20:43:16 +02:00
Benedikt Peetz
cc13ec2867
build(treewide): Update trinitrix/core to the modern standard
2024-05-04 20:40:02 +02:00
Benedikt Peetz
42c5a58e6c
build(.envrc): Add some paths to the PATH
2024-05-04 20:12:25 +02:00
Benedikt Peetz
ebc336faa3
test(valgrind): Add a script to test for memory leaks
2024-05-04 20:12:00 +02:00
Benedikt Peetz
0fe5fe8b59
build(Cargo): Update
2024-05-04 20:07:52 +02:00
Benedikt Peetz
23e98fc474
build({makefile,build.rs}): Add the required tooling to build the plugin and trinitrix
2024-05-04 20:07:12 +02:00
Benedikt Peetz
7fdc752490
feat(ui/repl): Get the development repl into a useful shape
...
This repl is not really meant for user, as it's quite features striped.
Its main goal is to enable a faster debugging turnabout time.
2024-05-04 20:05:05 +02:00
Benedikt Peetz
88f323d030
feat(config/c): Translate the example lua config to c
2024-05-04 20:04:00 +02:00
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