Max Brunsfeld
86205b9e6d
Fix infinite loop on unterminated string in query
2019-09-13 15:19:21 -07:00
Max Brunsfeld
a1fec71b19
Tweak QueryCursor to allow iterating either matches or captures
...
For syntax highlighting, we want to iterate over all of the captures in
order, and don't care about grouping the captures by pattern.
2019-09-13 15:19:04 -07:00
Max Brunsfeld
49ce2fddb9
Add wasm binding for running tree queries in a limited range
2019-09-12 12:14:04 -07:00
Max Brunsfeld
67dcbc3e73
Detect error when a prefix of a valid node name is used in a query
2019-09-11 21:23:46 -07:00
Max Brunsfeld
c71de5bd81
Tweak query interface
...
* Rename TSQueryContext -> TSQueryCursor
* Remove the permanent association between the cursor and its query. The
cursor can now be used again for a different query.
2019-09-11 17:33:48 -07:00
Max Brunsfeld
c8c75782e3
Allow tree queries to execute within a limited range
2019-09-11 16:49:29 -07:00
Max Brunsfeld
beb5eec7d9
Fix handling of single-node patterns in tree queries
2019-09-11 15:22:32 -07:00
Max Brunsfeld
d674bc139a
Fix more bugs in binary search used in tree queries
...
This binary search implementation differs from Rust's
`slice::binary_search_by` method in how they deal with ties.
In Rust's implementation:
> If there are multiple matches, then any one of the matches
> could be returned.
This implementation needs to return the index of the *first* match.
2019-09-11 14:45:14 -07:00
Max Brunsfeld
33f89522f6
Allow lisp-style comments in tree queries
2019-09-11 12:16:05 -07:00
Max Brunsfeld
4fa0b02d67
Fix management of capture lists in query execution
2019-09-11 12:06:38 -07:00
Max Brunsfeld
60467ae701
Fix bugs in binary search used in tree queries
2019-09-10 22:30:27 -07:00
Max Brunsfeld
fe7c74e7aa
Start work on an API for querying trees
2019-09-10 20:53:57 -07:00