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
Bruno BELANYI
964d796b4b
Fix 'nix flake check' evaluation
...
I should figure out why 'pre-commit' even needs dotnet at some point...
2022-06-03 15:58:12 +02:00
Bruno BELANYI
c48624c0f3
Add string escape high-lighting
2022-06-03 12:58:34 +02:00
Bruno BELANYI
47eb986835
Add Drone CI
2022-06-03 12:00:05 +02:00
Bruno BELANYI
6cec0e4a68
Add nix package
2022-06-03 11:59:30 +02:00
Bruno BELANYI
558e45aeed
Add ':' as delimiter
2022-06-03 11:43:43 +02:00
Bruno BELANYI
0b17386cad
Add ':=' to 'operator'
2022-06-03 11:42:57 +02:00
Bruno BELANYI
82bbebeeb5
Inline '_function_declaration_common'
...
This is purely an de-duplication rule, we don't need to make it part of
the parse tree.
2022-06-03 10:59:54 +02:00
Bruno BELANYI
0b549493a2
Add identifiers high-lighting
...
We now make use of the more specific '_type_identifier' and
'_field_identifier' rules!
2022-06-03 10:44:10 +02:00
Bruno BELANYI
da494122ea
Replace '_typed_field' by more specific grammar
...
Instead of re-using a common rule, inline its definition and use
'_field_identifier' where appropriate.
This is useful for more accurate high-lighting.
2022-06-03 10:40:14 +02:00
Bruno BELANYI
5d37bf7bd1
Use 'type_identifier' in array type declaration
2022-06-03 10:35:53 +02:00
Bruno BELANYI
0827093fe7
Add 'field_identifier' alias
...
This will be useful for high-lighting.
2022-06-03 10:31:30 +02:00
Bruno BELANYI
abe5b2e366
Add 'misc' grouping
2022-06-03 10:16:44 +02:00
Bruno BELANYI
2be5056793
Add 'type_identifier' alias
...
This is more appropriate, and actually closer to the specified grammar.
2022-06-03 10:15:40 +02:00
Bruno BELANYI
6e40691a35
Add operators highlighting
2022-06-03 10:08:58 +02:00
Bruno BELANYI
d83fa3acb7
Add keywords highlighting
2022-06-02 22:27:58 +02:00
Bruno BELANYI
751929a058
Fix whitespace skipping in scanner
...
Once again, implicit fall-through is the devil.
2022-06-02 22:27:13 +02:00
Bruno BELANYI
61f03a116c
Add additional test for comments
2022-06-02 22:20:37 +02:00
Bruno BELANYI
b836117a21
Add literals highlighting
2022-06-02 22:20:37 +02:00
Bruno BELANYI
b9376ccd35
Add comment syntax highlighting
2022-06-02 22:20:37 +02:00
Bruno BELANYI
84d25af8d5
Add language information to 'package.json'
...
Apparently this is needed by the 'tree-sitter' tooling for syntax
highlighting.
2022-06-02 22:20:37 +02:00
Bruno BELANYI
5866cd4a82
Add 'tree-sitter' pre-commit hook
...
Make sure you don't break anything when committing.
2022-06-02 22:20:37 +02:00
Bruno BELANYI
b3e91d9aad
Add 'tree-sitter-files' pre-commit hook
...
This is too ensure that generated files are always in lock-step with the
grammar.
2022-06-02 22:20:37 +02:00
Bruno BELANYI
8f752e0f94
Add 'clang-format' pre-commit hook
2022-06-02 22:20:37 +02:00
Bruno BELANYI
5be01b43fb
Add clang-format rules
...
Since we now have an external scanner, might as well have good looking
code.
2022-06-02 22:20:37 +02:00
Bruno BELANYI
50a0eaa071
Add support for nested comments
...
Unfortunately, the 'extras' array expects single tokens only, so one
can't really use a recursive parsing rule to express nesting comments...
2022-06-02 22:20:37 +02:00
Bruno BELANYI
75bb2c7009
Add comments
...
For now it only supports non-nested comments. It seems like I *will*
need to write an external lexer to account for nesting properly.
2022-06-02 17:07:30 +02:00
Bruno BELANYI
e5e958cac9
Add tests for sequence expressions
2022-06-02 17:07:30 +02:00
Bruno BELANYI
e59aeed31a
Remove nested 'parameters' field
...
The 'parameters' production rule does not need itself to have a
'parameters' field, this is redundant information.
2022-06-02 17:07:30 +02:00
Bruno BELANYI
76b558a982
Add return type to function declarations
2022-06-02 17:07:30 +02:00
Bruno BELANYI
1e5f7cd5d5
Add array types
2022-06-02 17:07:30 +02:00