Commit graph

165 commits

Author SHA1 Message Date
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
52cda5f541 Start work on wasm binding to query API 2019-09-10 20:54:21 -07:00
Max Brunsfeld
fe7c74e7aa Start work on an API for querying trees 2019-09-10 20:53:57 -07:00
Max Brunsfeld
82fab90c0b web: Add bindings for remaining field APIs 2019-09-04 09:30:36 -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
Max Brunsfeld
69ab405325 In next ABI, group symbols by action in small parse state table
This is a more compact representation because in most states, many 
symbols share the same actions.
2019-08-30 20:29:55 -07:00
Max Brunsfeld
09a2755399 Store parse states with few lookahead symbols in a more compact way 2019-08-29 15:52:23 -07:00
Max Brunsfeld
0955c5b3d7 Handle named nodes aliased as anonymous nodes
Fixes #401
2019-08-29 14:28:44 -07:00
Max Brunsfeld
b3ab2e07a2 binding_rust: Generalize the interface to callback-based parse methods
Fixes #386
2019-08-29 10:39:51 -07:00
Max Brunsfeld
a3ce4a4282 Remove some unnecessary global symbols from the library 2019-08-28 11:17:29 -07:00
Tuấn-Anh Nguyễn
f0999d7ac0 Make Rust functions return ExactSizeIterator instead of just Iterator (#438)
* Add CBufferIter::size_hint

* Make Rust functions return ExactSizeIterator instead of just Iterator

* Fix wrong CBufferIter::size_hint
2019-08-28 09:28:47 -07:00
Tuấn-Anh Nguyễn
d96ba09391 Make Tree::changed_ranges return an Iterator instead of a Vec (#437)
* Make Tree::changed_ranges return an Iterator instead of a Vec

* Remove CBufferIter.free parameter
2019-08-26 19:36:16 -07:00
Tuấn-Anh Nguyễn
a073fc403a Add some missing APIs in Rust binding (#435) 2019-08-24 14:28:58 -07:00
Gregor
105b0ba52c Add build instruction to rust binding README (#432)
Fixes #431
2019-08-21 11:59:37 -07:00
Max Brunsfeld
aace0970d8 Tweak formatting, add comments 2019-08-19 17:31:35 -07:00
Max Brunsfeld
ef87ed6130 Check once for cancellation at the beginning of a parse 2019-08-19 17:31:35 -07:00
Max Brunsfeld
ec7756faa0 Add repo URL to Cargo.toml files 2019-08-19 17:31:35 -07:00
Rob Donnelly
123dcfaec5 Fix compile on older versions of GCC and CLANG (#427)
Older versions of GCC (<4.9) and LLVM (<3.6) do not have __atomic_load_n
which is part of the C11 standard.  Fix by falling back to
__sync_fetch_and_add with a value of 0 when __atomic_load_n is not
available.

Fixes #423

Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2019-08-15 09:50:58 -07:00
Max Brunsfeld
52126a6606 Update JS test to reflect typescript grammar changes 2019-08-08 10:23:17 -07:00
Rob Donnelly
b1a4cc044d Fix Rust bindings example (#415)
`Parser::parse` returns `Option<&Tree>`.  An `unwrap()` or similar is required to get the actual `Tree`.
2019-08-08 08:35:23 -07:00
Max Brunsfeld
93f7de03e2 cli: Handle multi-parser repos, content-regex property
Prompted by tree-sitter/tree-sitter-typescript#68
2019-08-07 17:41:45 -07:00
Max Brunsfeld
0afbc31789 Automatically skip BOM characters at beginnings of files
Refs tree-sitter/tree-sitter-python#48
2019-08-02 12:03:04 -07:00
Max Brunsfeld
9848ceb3e2 wasm: Fix infinite loop in Node.text when tree and text are out-of-sync 2019-07-31 13:55:15 -07:00
Max Brunsfeld
3714e330d3 wasm: 0.15.9 2019-07-29 17:19:52 -07:00
Max Brunsfeld
08021301c7 wasm: Fix descendants of type error
Fixes #394
2019-07-29 17:18:47 -07:00
Max Brunsfeld
56f30ac06f wasm: 0.15.8 2019-07-23 11:20:24 -07:00
Stafford Brunk
ce10b53fe3
Add missing currentFieldName() to TreeCursor 2019-07-23 06:47:44 -06:00
Stafford Brunk
d686d24563
Add missing delete() to TreeCursor 2019-07-23 06:47:44 -06:00
Stafford Brunk
e5ee59c051
Correct currentNode on TreeCursor
It's a method not a getter in this implementation
2019-07-23 06:47:44 -06:00
Max Brunsfeld
443ac1c1e5 Update python tests to reflect grammar changes 2019-07-22 09:55:30 -07:00
Max Brunsfeld
f4740a1beb Make properties generation aware of which nodes are leaves 2019-07-22 09:30:05 -07:00
Max Brunsfeld
ea515b6967 Fix ts_node_string behavior for anonymous leaf nodes
Refs tree-sitter/py-tree-sitter#8
2019-07-18 12:39:15 -07:00
Max Brunsfeld
f505613af3 Fix bug introduced when optimizing property sheet JSON files 2019-07-17 17:00:25 -07:00
Max Brunsfeld
311fc51e8a wasm: 0.15.7 2019-07-17 15:19:53 -07:00
Max Brunsfeld
def1e1e91a Reduce bloat in generated property sheet JSON files 2019-07-17 14:28:44 -07:00
Max Brunsfeld
5289e009c1 wasm: Add descendantsOfType to typescript interface 2019-07-17 08:59:14 -07:00
Max Brunsfeld
f00b310908 wasm: Implement Node.descendantsOfType 2019-07-17 08:58:46 -07:00
Stafford Brunk
6340c820c1
Add missing copy() and getLanguage() calls to Tree web types 2019-07-16 20:42:57 -06:00
Stafford Brunk
3953cb317f
Add delete() to Parser and Tree web types 2019-07-16 20:39:57 -06:00
Max Brunsfeld
bd466febb4 highlight: Fix panic when cancelled before parsing a nested document 2019-07-16 14:34:24 -07:00
Max Brunsfeld
1a33f1a665 Add TreeCursor.currentFieldName to wasm binding 2019-07-10 14:31:10 -05:00
Max Brunsfeld
c90a532d8f Update tests to reflect javascript grammar changes 2019-07-10 14:30:43 -05:00