tree_haver 4.0.0 → 4.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +44 -1
- data/README.md +1 -1
- data/lib/tree_haver/backends/ffi.rb +20 -3
- data/lib/tree_haver/node.rb +0 -1
- data/lib/tree_haver/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +4 -4
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 81ceda8836df5d3f2c45886a8c056f1acbc65b8f221990f6e8e2cf7cf6c5334d
|
|
4
|
+
data.tar.gz: 79e8c7110c85383f368ebd975ba435a3939c27efef30e9c955afb485d2054c14
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cd8d8dc376fc4dad1acfd9a9ca8463311a07256af6c9ac27dd618e05bb5621e97d37f7d425cd5d4a5d40e6e2e918e8f71dce04562fdaef91c5f54196abd1e794
|
|
7
|
+
data.tar.gz: '00197875637b14a40ecb252f5ea13a85bd03743108258d8c2779c9766b58f10b8d2b90d0c38de9502bb48eceecbd8f29df13caf062bbd0e36858fb0f2563f82a'
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -30,6 +30,45 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
30
30
|
|
|
31
31
|
### Security
|
|
32
32
|
|
|
33
|
+
## [4.0.2] - 2026-01-08
|
|
34
|
+
|
|
35
|
+
- TAG: [v4.0.2][4.0.2t]
|
|
36
|
+
- COVERAGE: 95.27% -- 2033/2134 lines in 28 files
|
|
37
|
+
- BRANCH COVERAGE: 84.07% -- 802/954 branches in 28 files
|
|
38
|
+
- 95.49% documented
|
|
39
|
+
|
|
40
|
+
### Added
|
|
41
|
+
|
|
42
|
+
- **FFI Backend**: Implemented `missing?` method on `TreeHaver::Backends::FFI::Node`
|
|
43
|
+
- Added `ts_node_is_missing` FFI function attachment
|
|
44
|
+
- This method was missing entirely, causing `NoMethodError` when checking for MISSING nodes
|
|
45
|
+
|
|
46
|
+
### Changed
|
|
47
|
+
|
|
48
|
+
- **TreeHaver::Node**: Removed defensive `respond_to?` checks from `has_error?` and `missing?` methods
|
|
49
|
+
- All tree-sitter backends (MRI, Rust, FFI, Java) must implement these methods on their inner nodes
|
|
50
|
+
- This enforces proper backend API compliance rather than silently masking missing implementations
|
|
51
|
+
|
|
52
|
+
### Fixed
|
|
53
|
+
|
|
54
|
+
- **FFI Backend**: Added explicit boolean conversion (`!!`) to `has_error?` return value
|
|
55
|
+
- FFI `:bool` return type may behave inconsistently across Ruby versions and platforms
|
|
56
|
+
- Ensures `has_error?` always returns `true` or `false`, not truthy/falsy values
|
|
57
|
+
|
|
58
|
+
## [4.0.1] - 2026-01-08
|
|
59
|
+
|
|
60
|
+
- TAG: [v4.0.1][4.0.1t]
|
|
61
|
+
- COVERAGE: 95.31% -- 2032/2132 lines in 28 files
|
|
62
|
+
- BRANCH COVERAGE: 84.10% -- 804/956 branches in 28 files
|
|
63
|
+
- 95.48% documented
|
|
64
|
+
|
|
65
|
+
### Fixed
|
|
66
|
+
|
|
67
|
+
- **FFI Backend**: Implemented `has_error?` method on `TreeHaver::Backends::FFI::Node`
|
|
68
|
+
- Previously was a stub that always returned `false`, causing parse errors to go undetected
|
|
69
|
+
- Now properly calls `ts_node_has_error` FFI function to detect syntax errors in parsed trees
|
|
70
|
+
- This fixes error detection on JRuby when using the FFI backend with tree-sitter grammars
|
|
71
|
+
|
|
33
72
|
## [4.0.0] - 2026-01-08
|
|
34
73
|
|
|
35
74
|
- TAG: [v4.0.0][4.0.0t]
|
|
@@ -951,7 +990,11 @@ Despite the major version bump to 3.0.0 (following semver due to the breaking `L
|
|
|
951
990
|
|
|
952
991
|
- Initial release
|
|
953
992
|
|
|
954
|
-
[Unreleased]: https://github.com/kettle-rb/tree_haver/compare/v4.0.
|
|
993
|
+
[Unreleased]: https://github.com/kettle-rb/tree_haver/compare/v4.0.2...HEAD
|
|
994
|
+
[4.0.2]: https://github.com/kettle-rb/tree_haver/compare/v4.0.1...v4.0.2
|
|
995
|
+
[4.0.2t]: https://github.com/kettle-rb/tree_haver/releases/tag/v4.0.2
|
|
996
|
+
[4.0.1]: https://github.com/kettle-rb/tree_haver/compare/v4.0.0...v4.0.1
|
|
997
|
+
[4.0.1t]: https://github.com/kettle-rb/tree_haver/releases/tag/v4.0.1
|
|
955
998
|
[4.0.0]: https://github.com/kettle-rb/tree_haver/compare/v3.2.6...v4.0.0
|
|
956
999
|
[4.0.0t]: https://github.com/kettle-rb/tree_haver/releases/tag/v4.0.0
|
|
957
1000
|
[3.2.6]: https://github.com/kettle-rb/tree_haver/compare/v3.2.5...v3.2.6
|
data/README.md
CHANGED
|
@@ -2182,7 +2182,7 @@ Thanks for RTFM. ☺️
|
|
|
2182
2182
|
[📌gitmoji]: https://gitmoji.dev
|
|
2183
2183
|
[📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
|
2184
2184
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
2185
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-2.
|
|
2185
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-2.134-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
|
2186
2186
|
[🔐security]: SECURITY.md
|
|
2187
2187
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
|
2188
2188
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
|
@@ -273,6 +273,8 @@ module TreeHaver
|
|
|
273
273
|
attach_function(:ts_node_end_point, [:ts_node], :ts_point)
|
|
274
274
|
attach_function(:ts_node_is_null, [:ts_node], :bool)
|
|
275
275
|
attach_function(:ts_node_is_named, [:ts_node], :bool)
|
|
276
|
+
attach_function(:ts_node_is_missing, [:ts_node], :bool)
|
|
277
|
+
attach_function(:ts_node_has_error, [:ts_node], :bool)
|
|
276
278
|
|
|
277
279
|
# Only mark as fully loaded after all attach_function calls succeed
|
|
278
280
|
@loaded = true
|
|
@@ -695,10 +697,25 @@ module TreeHaver
|
|
|
695
697
|
|
|
696
698
|
# Check if node has error
|
|
697
699
|
#
|
|
698
|
-
#
|
|
700
|
+
# Returns true if this node or any of its descendants have a syntax error.
|
|
701
|
+
# This is the FFI equivalent of tree-sitter's ts_node_has_error.
|
|
702
|
+
#
|
|
703
|
+
# @return [Boolean] true if node subtree contains errors
|
|
699
704
|
def has_error?
|
|
700
|
-
#
|
|
701
|
-
|
|
705
|
+
# Explicit boolean conversion ensures consistent behavior across Ruby versions
|
|
706
|
+
# FFI :bool return type may behave differently on some platforms
|
|
707
|
+
!!Native.ts_node_has_error(@val)
|
|
708
|
+
end
|
|
709
|
+
|
|
710
|
+
# Check if this is a MISSING node
|
|
711
|
+
#
|
|
712
|
+
# A MISSING node represents a token that was expected by the grammar
|
|
713
|
+
# but was not found in the source. Tree-sitter inserts MISSING nodes
|
|
714
|
+
# to allow parsing to continue despite syntax errors.
|
|
715
|
+
#
|
|
716
|
+
# @return [Boolean] true if this is a MISSING node
|
|
717
|
+
def missing?
|
|
718
|
+
!!Native.ts_node_is_missing(@val)
|
|
702
719
|
end
|
|
703
720
|
|
|
704
721
|
# Iterate over child nodes
|
data/lib/tree_haver/node.rb
CHANGED
data/lib/tree_haver/version.rb
CHANGED
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: tree_haver
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.0.
|
|
4
|
+
version: 4.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -298,10 +298,10 @@ licenses:
|
|
|
298
298
|
- MIT
|
|
299
299
|
metadata:
|
|
300
300
|
homepage_uri: https://tree-haver.galtzo.com/
|
|
301
|
-
source_code_uri: https://github.com/kettle-rb/tree_haver/tree/v4.0.
|
|
302
|
-
changelog_uri: https://github.com/kettle-rb/tree_haver/blob/v4.0.
|
|
301
|
+
source_code_uri: https://github.com/kettle-rb/tree_haver/tree/v4.0.2
|
|
302
|
+
changelog_uri: https://github.com/kettle-rb/tree_haver/blob/v4.0.2/CHANGELOG.md
|
|
303
303
|
bug_tracker_uri: https://github.com/kettle-rb/tree_haver/issues
|
|
304
|
-
documentation_uri: https://www.rubydoc.info/gems/tree_haver/4.0.
|
|
304
|
+
documentation_uri: https://www.rubydoc.info/gems/tree_haver/4.0.2
|
|
305
305
|
funding_uri: https://github.com/sponsors/pboling
|
|
306
306
|
wiki_uri: https://github.com/kettle-rb/tree_haver/wiki
|
|
307
307
|
news_uri: https://www.railsbling.com/tags/tree_haver
|
metadata.gz.sig
CHANGED
|
Binary file
|