Will Lillis
8bd923ab9e
fix(lib): replace raw array accesses with array_get
2025-06-05 00:53:11 -04:00
Max Brunsfeld
2ab9c9b590
Fully fix field underflow in go_to_previous_sibling ( #4483 )
...
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
2025-06-02 15:34:25 -07:00
Max Brunsfeld
f91255a201
Fix crash w/ goto_previous_sibling when parent node has leading extra child ( #4472 )
...
* Fix crash w/ goto_previous_sibling when parent node has leading extra
child Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
* Fix lint
Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
---------
Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
2025-05-27 16:56:33 -07:00
Max Brunsfeld
066fd77d39
Fix cases where error recovery could infinite loop ( #4257 )
...
* Rename corpus test functions to allow easy filtering by language
* Use usize for seed argument
* Avoid retaining useless stack versions when reductions merge
We found this problem when debugging an infinite loop that happened
during error recovery when using the Zig grammar. The large number of
unnecessary paused stack versions were preventing the correct recovery
strategy from being tried.
* Fix leaked lookahead token when reduction results in a merged stack
* Enable running PHP tests in CI
* Fix possible infinite loop during error recovery at EOF
* Account for external scanner state changes when detecting changed ranges in subtrees
2025-03-04 13:50:56 -08:00
ObserverOfTime
881c54e462
fix(lib): handle compiler warnings
2024-10-19 02:57:08 +00:00
Jeong, Hun
bbc1370dd5
feat(lib)!: treat nodes' end ranges exclusively in goto_first_child_for_{byte,point}
...
This goes back on #1640 , because now cursors are bi-directional, and
going to the previous sibling is simple.
2024-09-29 17:45:07 -04:00
Amaan Qureshi
ee06325f67
fix(lib): correct extra node creation from non-zero root-alias cursors
2024-08-31 23:58:19 -04:00
Amaan Qureshi
09d2b23a64
fix(lib): account for the root node of a tree cursor being an alias
2024-03-20 19:23:08 -04:00
Amaan Qureshi
037c71c7bd
fix: apply some scan-build suggestions (unused assignment/garbage access)
2024-02-21 15:38:13 -05:00
Daumantas Kavolis
143ed959c9
Use single if block
2023-10-25 10:47:55 +03:00
Daumantas Kavolis
e265929f90
Fix goto_previous_sibling with padded first children
2023-10-25 10:19:03 +03:00
Daumantas Kavolis
8c789bf7d5
After review
2023-08-02 00:02:33 +03:00
Daumantas Kavolis
4d6a30a69e
Need to check that left row is also non-zero so that columns are not subtracted twice
2023-08-02 00:02:33 +03:00
Daumantas Kavolis
ec90c215ae
Add tests for bidirectional cursor
2023-08-02 00:02:33 +03:00
Daumantas Kavolis
7267384970
Use step directly
2023-08-02 00:02:33 +03:00
Daumantas Kavolis
c47e217e73
API extensions
2023-08-02 00:02:33 +03:00
Amaan Qureshi
13f6ec2b0c
fix: rename shadowed variables from -Wshadow warnings and apply some useful clang-tidy warnings
2023-07-19 18:12:26 -04:00
Max Brunsfeld
d0029a1527
Avoid unused value warning from array_pop
2023-06-14 11:31:43 -07:00
Max Brunsfeld
3375527a89
Fix bug in ts_tree_cursor_goto_descendant
2023-06-12 14:45:30 -07:00
Max Brunsfeld
a2119cb691
Add APIs for retrieving tree cursor's depth and descendant index
2023-06-12 11:50:44 -07:00
Max Brunsfeld
9dd725b4e3
Start work on exposing APIs for node descendant counts and indices
2023-06-09 08:51:47 -07:00
Max Brunsfeld
29c9073177
Extract 'internal' versions of tree cursor movement fns that allow visiting hidden nodes
2023-02-16 11:59:34 -08:00
Max Brunsfeld
cb4317ba8e
Change goto_first_child_for_{byte,point} to compare nodes' ranges inclusively
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-04 12:38:33 -08:00
Max Brunsfeld
584b55df8d
Delete unused code, tweak whitespace
2022-01-19 16:54:57 -08:00
Max Brunsfeld
919e9745a6
Add ts_tree_cursor_goto_first_child_for_point function
...
This function (and the similar `ts_tree_cursor_goto_first_child_for_byte`)
allows you to efficiently seek the tree cursor to a given position,
exploiting the tree's internal balancing, without having to visit
all of the preceding siblings of each node.
2021-05-27 12:30:19 -07:00
Max Brunsfeld
047d33eecf
Remove bad logic for detecting later siblings with the same field
...
Co-authored-by: Douglas Creager <dcreager@dcreager.net>
2021-03-05 14:50:16 -08:00
Aron Griffis
e13581b041
Fix build with GCC 11
...
It seems redundant to array_init() when the structure is zeroed already
in the static assignment. But probably the fact that this code juggles
between TSTreeCursor and TreeCursor, without using a union, leaves the
compiler unable to tell that it's been initialized.
Fixes https://github.com/tree-sitter/tree-sitter/issues/853
2020-12-22 15:19:35 -05:00
Max Brunsfeld
99cd283e39
query: Fix detection of repeated field names
...
Fixes #790
2020-11-02 14:07:39 -08:00
Max Brunsfeld
d533d1f076
Allocate parent nodes together with their child array
2020-10-23 12:15:44 -07:00
Max Brunsfeld
857a9ed07b
query: Handle captured wildcard nodes at the root of patterns
2020-10-08 12:34:08 -07:00
Max Brunsfeld
a544200a6c
Simplify query code for matching supertypes
2020-09-23 11:55:03 -07:00
Max Brunsfeld
b5a9adb555
Allow queries to match on supertypes
...
Co-authored-by: Ayman Nadeem <aymannadeem@github.com>
2020-09-21 12:34:48 -07:00
Max Brunsfeld
36a8821f3e
Fix behavior of the last child operator in tree queries
2020-09-02 12:10:04 -07:00
Max Brunsfeld
6a46dff89a
Add ts_language_alias_at helper function
2020-06-25 15:06:26 -07:00
Max Brunsfeld
a6b6a681ec
Fix a bug that prevented early termination of query matches
2019-09-18 16:13:10 -07:00
Max Brunsfeld
186b08381c
Terminate failed query matches before descending whenever possible
...
When iterating over captures, this prevents reasonable queries from
forcing the tree cursor to buffer matches unnecessarily.
2019-09-18 11:37:49 -07:00
Max Brunsfeld
fe7c74e7aa
Start work on an API for querying trees
2019-09-10 20:53:57 -07:00
Max Brunsfeld
30e73505e1
Fix handling of extra tokens in ts_tree_cursor_current_field_id
2019-09-04 09:04:31 -07:00
Andrey Zaytsev
7f2233ddaf
Ts tree cursor copy ( #363 )
...
* add ts_tree_cursor_copy fn
* indentation
2019-06-16 10:52:37 -07:00
Max Brunsfeld
9f608435ee
Fix errors in when languages have no fields
2019-02-12 17:20:12 -08:00
Max Brunsfeld
56309a1c28
Generate node-fields.json file
2019-02-12 11:06:18 -08:00
Max Brunsfeld
d8a2c0dda2
Use a separate type for storing field map headers
2019-02-08 16:06:29 -08:00
Max Brunsfeld
1d1674811c
Fully implement ts_node_child_by_field_id
2019-02-08 15:16:56 -08:00
Max Brunsfeld
18a13b457d
Get basic field API working
2019-02-08 15:16:56 -08:00
Max Brunsfeld
0f2347b318
Just call the C lib 'the library' everywhere, don't call it a 'runtime'
2019-01-10 15:22:39 -08:00
Max Brunsfeld
dd416b0955
Update include paths to not reference 'runtime' directory
2019-01-04 17:33:34 -08:00
Max Brunsfeld
47607cecf4
Reorganize repo, add rust CLI and binding code,
2019-01-04 17:31:49 -08:00