Skip to content

Commit

Permalink
Add support for the "inline" class keyword
Browse files Browse the repository at this point in the history
  • Loading branch information
yorickpeterse committed Nov 7, 2024
1 parent 6f9c072 commit aecabed
Show file tree
Hide file tree
Showing 17 changed files with 15,423 additions and 15,312 deletions.
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
# Rust artifacts
Cargo.lock
target/

# Node artifacts
Expand All @@ -10,9 +9,9 @@ node_modules/

# Swift artifacts
.build/
Package.resolved

# Go artifacts
go.sum
_obj/

# Python artifacts
Expand Down
5 changes: 4 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,10 @@ include = ["bindings/rust/*", "grammar.js", "queries/*", "src/*"]
path = "bindings/rust/lib.rs"

[dependencies]
tree-sitter = "^0.22"
tree-sitter-language = "0.1.0"

[build-dependencies]
cc = "^1.0"

[dev-dependencies]
tree-sitter = "0.23"
4 changes: 2 additions & 2 deletions bindings/go/binding_test.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 0 additions & 5 deletions bindings/go/go.mod

This file was deleted.

9 changes: 9 additions & 0 deletions bindings/node/binding_test.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions bindings/python/tests/test_binding.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions bindings/python/tree_sitter_inko/binding.c

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

27 changes: 13 additions & 14 deletions bindings/rust/lib.rs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions bindings/swift/TreeSitterInkoTests/TreeSitterInkoTests.swift

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module github.com/tree-sitter/tree-sitter-inko

go 1.23

require github.com/tree-sitter/go-tree-sitter v0.23.1
12 changes: 9 additions & 3 deletions grammar.js
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ module.exports = grammar({
extern_arguments: $ => seq(
'(',
optional(seq($.argument, repeat(seq(',', $.argument)))),
optional(choice(seq(','), seq(',', $.rest_argument, optional(',')))),
optional(choice(',', seq(',', $.rest_argument, optional(',')))),
')'
),
module_method: $ => seq(
Expand All @@ -117,7 +117,7 @@ module.exports = grammar({
':',
field('type', $._type),
),
rest_argument: _ => seq('...'),
rest_argument: _ => '...',
_returns: $ => seq('->', $._type),
type_parameters: $ => seq('[', comma_list($.type_parameter), ']'),
type_parameter: $ => seq(
Expand Down Expand Up @@ -159,7 +159,13 @@ module.exports = grammar({
field('type_parameters', optional($.type_parameters)),
field('body', $.class_body),
),
_class_modifier: $ => choice('async', 'builtin', 'enum', 'extern'),
_class_modifier: $ => choice(
'inline',
'async',
'builtin',
'extern',
seq(optional('inline'), 'enum'),
),
class_body: $ => seq('{', repeat($._class_expression) , '}'),
_class_expression: $ => choice(
$.define_field,
Expand Down
24 changes: 15 additions & 9 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,20 +38,26 @@
},
"scripts": {
"install": "node-gyp-build",
"prebuildify": "prebuildify --napi --strip",
"build": "tree-sitter generate --no-bindings",
"build-wasm": "tree-sitter build --wasm",
"test": "tree-sitter test",
"parse": "tree-sitter parse"
"prestart": "tree-sitter build --wasm",
"start": "tree-sitter playground",
"test": "node --test bindings/node/*_test.js"
},
"tree-sitter": [
{
"scope": "source.inko",
"injection-regex": "^inko$",
"file-types": ["inko"],
"highlights": ["queries/highlights.scm"],
"locals": ["queries/locals.scm"],
"tags": ["queries/tags.scm"]
"file-types": [
"inko"
],
"highlights": [
"queries/highlights.scm"
],
"locals": [
"queries/locals.scm"
],
"tags": [
"queries/tags.scm"
]
}
]
}
45 changes: 28 additions & 17 deletions src/grammar.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 4 additions & 9 deletions src/node-types.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit aecabed

Please sign in to comment.