Bruno BELANYI
bca103a393
Fix indent queries
...
You need to add '@indent' to the *parent* node, which whill indent the
children. For some reason I understood it as marking the node that
should be indented when I wrote these.
These were tested manually in Neovim, I need to add a way to test them
correctly though.
2022-06-12 20:38:51 +02:00
Bruno BELANYI
2b2a75af43
Release 0.1.0
...
continuous-integration/drone/push Build is passing
With the extensions now integrated, and most queries being in a state
fit to start testing them, this is good enough for a first release.
2022-06-04 22:06:06 +02:00
Bruno BELANYI
5862966ddf
Add README
2022-06-04 22:04:10 +02:00
Bruno BELANYI
d6f624ebda
Add method text objects
2022-06-04 22:02:34 +02:00
Bruno BELANYI
a522aab9cd
Add class text objects
2022-06-04 22:00:08 +02:00
Bruno BELANYI
7d0ab1f40c
Add object-oriented indents
2022-06-04 21:54:44 +02:00
Bruno BELANYI
2e08482c67
Add object-oriented folds
2022-06-04 21:52:39 +02:00
Bruno BELANYI
c9efe870ab
Add class tags
2022-06-04 21:50:45 +02:00
Bruno BELANYI
746c8d27b8
Add method tags
2022-06-04 21:45:54 +02:00
Bruno BELANYI
b1c2da4cb4
Add 'self' built-in variable high-lighting
2022-06-04 21:45:54 +02:00
Bruno BELANYI
acb5765591
Make 'method' keyword more specific
2022-06-04 21:45:54 +02:00
Bruno BELANYI
065ad5f760
Make 'new' constructor keyword
2022-06-04 21:45:54 +02:00
Bruno BELANYI
9c51cbc93f
Add 'Object' built-in type
2022-06-04 21:45:54 +02:00
Bruno BELANYI
425890a6fc
Add methods high-lighting
2022-06-04 21:45:54 +02:00
Bruno BELANYI
555e10c736
Add object-oriented keywords high-lighting
2022-06-04 21:45:54 +02:00
Bruno BELANYI
60804f0ff0
Add object-oriented constructs
...
Another EPITA extension, although this is mentionned in the book.
2022-06-04 21:45:47 +02:00
Bruno BELANYI
21172e21e7
Fix assignment priority
...
The assignment operator is lower priority than any other binary
operator.
Otherwise the following:
```tiger
a := b | c
```
Would be parsed as:
```tiger
(a := b) | c
```
Instead of the expected:
```tiger
a := (b | c)
```
2022-06-04 21:45:40 +02:00
Bruno BELANYI
869b0bf79a
Add meta-variable keywords high-lighting
2022-06-04 21:45:40 +02:00
Bruno BELANYI
572dab6f4b
Add meta-variables
...
This is an EPITA extension of the language, used mostly by internal
compiler machinery.
2022-06-04 21:45:33 +02:00
Bruno BELANYI
1cfcc43469
Add queries to rust bindings
...
continuous-integration/drone/push Build is passing
I should try using those bindings to write tests for currently untested
queries...
2022-06-04 11:02:13 +02:00
Bruno BELANYI
79413a9624
Do not indent inside strings
2022-06-04 11:00:41 +02:00
Bruno BELANYI
6732ec0994
Add loop indents
2022-06-04 10:58:14 +02:00
Bruno BELANYI
8ffe530561
Add conditional indents
2022-06-04 10:57:27 +02:00
Bruno BELANYI
83356398f9
Add comment indents
...
Yet another un-testable query with the vanilla tooling...
2022-06-04 10:54:36 +02:00
Bruno BELANYI
e8883aaf5d
Add loop text objects
2022-06-04 10:52:47 +02:00
Bruno BELANYI
0bb177a05e
Add conditional text objects
2022-06-04 10:52:47 +02:00
Bruno BELANYI
c31f249d4a
Add function parameter text objects
2022-06-04 10:52:47 +02:00
Bruno BELANYI
221904815a
Add function call text objects
2022-06-04 10:48:19 +02:00
Bruno BELANYI
a871263996
Add function text objects
2022-06-04 10:43:35 +02:00
Bruno BELANYI
c2dcb86e78
Add comment text objects
...
Once again, something that isn't testable with 'tree-sitter' tooling...
2022-06-04 10:43:35 +02:00
Bruno BELANYI
2bd24cceb4
Add folds
...
Unfortunately it seems like this is not really testable with the
'tree-sitter' tooling.
If I want to check that this is working correctly, I should explore how
to make use of, e.g., neovim to automate testing.
2022-06-04 10:43:35 +02:00
Bruno BELANYI
9214ca7c35
Add 'foldmethod' to grammar modeline
2022-06-04 10:43:35 +02:00
Bruno BELANYI
545d090540
Mark 'comment' as injecting 'comment'
...
Neovim defines queries for the 'comment' language, to match 'TODO',
'FIXME', etc...
2022-06-04 10:43:35 +02:00
Bruno BELANYI
10dae1ab92
Add scanner to bindings
2022-06-04 10:43:35 +02:00
Bruno BELANYI
c4af009a8d
Fix Cargo manifest
2022-06-04 10:43:35 +02:00
Bruno BELANYI
efe0a2800b
Add comment about 'locals' queries limitations
...
This is not enough of an issue to avoid using the functionality however,
for example variable declarations are thankfully not affected by this
issue, since they *must* be declared before their use.
2022-06-04 10:43:35 +02:00
Bruno BELANYI
184d3b9953
Add function tags
2022-06-04 10:43:35 +02:00
Bruno BELANYI
3e1068a336
Add built-in types
...
Not sure why it seems like the 'is-not? local' is not working.
Will investigate later
2022-06-03 22:04:30 +02:00
Bruno BELANYI
2d89ec8b20
Add built-in functions
...
continuous-integration/drone/push Build is passing
This is a good proxy test to ensure that scope queries work correctly.
2022-06-03 21:09:11 +02:00
Bruno BELANYI
073ff80adb
Add basic scoping queries
2022-06-03 21:02:40 +02:00
Bruno BELANYI
64ff9dd944
Add import path high-lighting
...
I don't think this group is supported by neovim, but 'tree-sitter-nix'
makes use of it, and I think it makes sense to add it.
2022-06-03 20:35:53 +02:00
Bruno BELANYI
bd42c2c9c1
Move 'literals' high-lighting to end of file
...
Once again, seems like order matters, and I want to be able to write more specific queries.
2022-06-03 20:30:45 +02:00
Bruno BELANYI
aff11eefce
More specific loop keyword high-lighting
2022-06-03 20:28:28 +02:00
Bruno BELANYI
b22ca8cd67
More specific function keyword high-lighting
...
I learnt about this group by reading the nvim-treesitter source [1].
[1]: see 'lua/nvim-treesitter/highlight.lua'
2022-06-03 20:15:09 +02:00
Bruno BELANYI
5f38f649bd
Ignore WASM artifact
2022-06-03 20:02:00 +02:00
Bruno BELANYI
b998075f2d
Use play-ground enabled 'tree-sitter' in devShell
...
This is actually quite useful for debugging it turns out :-).
2022-06-03 20:00:32 +02:00
Bruno BELANYI
62a601469e
Add functions high-lighting
2022-06-03 19:59:56 +02:00
Bruno BELANYI
67b555c381
Move 'misc' high-lighting to end of file
...
Turns out that order *matters* for queries.
Tree-sitter will stop at the first match it seems. So I want the
hyper-general 'identifier' matching right at the end to avoid overriding
more specific rules.
2022-06-03 19:58:19 +02:00
Bruno BELANYI
752f941589
Fix 'nix flake check'
...
continuous-integration/drone Build is passing
Turns out that 'tree-sitter' is not wrapped to have node and a compiler
available, because nixpkgs assumes that grammars already include
generated files.
So wrap it manually and use that in our pre-commit/checks.
2022-06-03 16:00:13 +02:00
Bruno BELANYI
02f89ac524
Refactor nix package
...
Introduce an overlay, and use the existing 'tree-sitter' package
machinery to extend it with this grammar.
Expose the extended 'tree-sitter' as part of the flake packages.
2022-06-03 15:58:16 +02:00