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
Benedikt Peetz
66bf5e3b6f
build(update.sh): Include the language_macros dir in the update
2023-10-18 21:14:23 +02:00
Benedikt Peetz
97c7327d54
build(treewide): Update
2023-10-18 21:14:03 +02:00
Benedikt Peetz
9139fa2776
feat(command_interface): Support user specified keymappings
2023-10-16 14:04:03 +02:00
Benedikt Peetz
602eba6a60
build(treewide): Update
2023-10-16 13:56:18 +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
d7b93178e8
build(treewide): Move back to rust stable
2023-10-14 12:42:36 +02:00
Benedikt Peetz
181af51c08
build(treewide): Update
2023-10-14 12:41:05 +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
29aa6c1d33
build(treewide): Update
2023-09-17 16:41:55 +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