ruby_tree_sitter 1.9.0 → 1.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/tree_sitter/language.c +8 -4
- data/ext/tree_sitter/query.c +2 -1
- data/lib/tree_sitter/error.rb +27 -0
- data/lib/tree_sitter/mixins/language.rb +1 -1
- data/lib/tree_sitter/version.rb +1 -1
- data/lib/tree_sitter.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a35fa35531187c6cd718e149f7eb1c73453d87636ce9dd1afeb37a760b8fedac
|
4
|
+
data.tar.gz: aa2ff0dd1d1b49d3ae63513637993888ccff2dad369aafa947d408ae45e11b75
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1313db10739efe934f4a2cf22a33386b74ddadd6cdf0a142dd820544279dc527246b381108d4a5ea5c604142745a237ec39965cdbaf47c130ab35dcab3edebe1
|
7
|
+
data.tar.gz: 3a04b30b36cded71ecf7a97e4a99192103726143abf256c5b6f352442ad18e32bb5ca96af6a7efc03093e3f9760b7ceb246137a433cffc1568dbaeb92674bdff
|
data/ext/tree_sitter/language.c
CHANGED
@@ -42,7 +42,8 @@ static VALUE language_load(VALUE self, VALUE name, VALUE path) {
|
|
42
42
|
void *lib = dlopen(path_cstr, RTLD_NOW);
|
43
43
|
const char *err = dlerror();
|
44
44
|
if (err != NULL) {
|
45
|
-
|
45
|
+
VALUE parser_not_found = rb_const_get(mTreeSitter, rb_intern("ParserNotFoundError"));
|
46
|
+
rb_raise(parser_not_found,
|
46
47
|
"Could not load shared library `%s'.\nReason: %s", path_cstr, err);
|
47
48
|
}
|
48
49
|
|
@@ -52,7 +53,8 @@ static VALUE language_load(VALUE self, VALUE name, VALUE path) {
|
|
52
53
|
err = dlerror();
|
53
54
|
if (err != NULL) {
|
54
55
|
dlclose(lib);
|
55
|
-
|
56
|
+
VALUE symbol_not_found = rb_const_get(mTreeSitter, rb_intern("SymbolNotFoundError"));
|
57
|
+
rb_raise(symbol_not_found,
|
56
58
|
"Could not load symbol `%s' from library `%s'.\nReason:%s",
|
57
59
|
StringValueCStr(name), path_cstr, err);
|
58
60
|
}
|
@@ -60,7 +62,8 @@ static VALUE language_load(VALUE self, VALUE name, VALUE path) {
|
|
60
62
|
TSLanguage *lang = make_ts_language();
|
61
63
|
if (lang == NULL) {
|
62
64
|
dlclose(lib);
|
63
|
-
|
65
|
+
VALUE language_load_error = rb_const_get(mTreeSitter, rb_intern("LanguageLoadError"));
|
66
|
+
rb_raise(language_load_error,
|
64
67
|
"TSLanguage = NULL for language `%s' in library `%s'.\nCall your "
|
65
68
|
"local TSLanguage supplier.",
|
66
69
|
StringValueCStr(name), path_cstr);
|
@@ -68,7 +71,8 @@ static VALUE language_load(VALUE self, VALUE name, VALUE path) {
|
|
68
71
|
|
69
72
|
uint32_t version = ts_language_version(lang);
|
70
73
|
if (version < TREE_SITTER_MIN_COMPATIBLE_LANGUAGE_VERSION) {
|
71
|
-
|
74
|
+
VALUE version_error = rb_const_get(mTreeSitter, rb_intern("ParserVersionError"));
|
75
|
+
rb_raise(version_error,
|
72
76
|
"Language %s (v%d) from `%s' is old.\nMinimum supported ABI: "
|
73
77
|
"v%d.\nCurrent ABI: v%d.",
|
74
78
|
StringValueCStr(name), version, path_cstr,
|
data/ext/tree_sitter/query.c
CHANGED
@@ -134,7 +134,8 @@ static VALUE query_initialize(VALUE self, VALUE language, VALUE source) {
|
|
134
134
|
TSQuery *res = ts_query_new(lang, src, len, &error_offset, &error_type);
|
135
135
|
|
136
136
|
if (res == NULL || error_offset > 0) {
|
137
|
-
|
137
|
+
VALUE query_creation_error = rb_const_get(mTreeSitter, rb_intern("QueryCreationError"));
|
138
|
+
rb_raise(query_creation_error, "Could not create query: TSQueryError%s",
|
138
139
|
query_error_str(error_type));
|
139
140
|
} else {
|
140
141
|
SELF = res;
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module TreeSitter
|
4
|
+
# Base tree-sitter error.
|
5
|
+
class TreeSitterError < Exception
|
6
|
+
end
|
7
|
+
|
8
|
+
# Raised when query creation fails.
|
9
|
+
class QueryCreationError < TreeSitterError
|
10
|
+
end
|
11
|
+
|
12
|
+
# Raised when the language symbol is found, but loading it returns nothing.
|
13
|
+
class LanguageLoadError < TreeSitterError
|
14
|
+
end
|
15
|
+
|
16
|
+
# Raised when a parser is not found.
|
17
|
+
class ParserNotFoundError < TreeSitterError
|
18
|
+
end
|
19
|
+
|
20
|
+
# Raised when the parser version is incompatible with the current tree-sitter.
|
21
|
+
class ParserVersionError < TreeSitterError
|
22
|
+
end
|
23
|
+
|
24
|
+
# Raised when a parser is not found.
|
25
|
+
class SymbolNotFoundError < TreeSitterError
|
26
|
+
end
|
27
|
+
end
|
data/lib/tree_sitter/version.rb
CHANGED
data/lib/tree_sitter.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_tree_sitter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Firas al-Khalil
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2024-
|
12
|
+
date: 2024-12-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sorbet-runtime
|
@@ -75,6 +75,7 @@ files:
|
|
75
75
|
- ext/tree_sitter/tree_sitter.c
|
76
76
|
- ext/tree_sitter/tree_sitter.h
|
77
77
|
- lib/tree_sitter.rb
|
78
|
+
- lib/tree_sitter/error.rb
|
78
79
|
- lib/tree_sitter/helpers.rb
|
79
80
|
- lib/tree_sitter/mixins/language.rb
|
80
81
|
- lib/tree_sitter/node.rb
|