Commit graph

156 commits

Author SHA1 Message Date
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
Max Brunsfeld
f2b13721d9 Update wasm test to reflect C++ grammar changes 2019-07-05 12:13:38 -07:00
Max Brunsfeld
64fc944202 Fix missing criteria for leaf node reuse 2019-06-20 15:02:20 -07:00
Sebastián Gurin
bd97ad5c4c Wasm file generation note in readme (#368)
* readme .wasm file generate and usage in node.js

* generate wasm language files readme note
2019-06-20 14:06:09 -07:00
Max Brunsfeld
e4873191d6 Refactor generated lex function to use fewer instructions per state 2019-06-20 09:57:38 -07:00
Max Brunsfeld
28011b1e60 Add ts_node_is_extra API 2019-06-19 15:58:29 -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
0e046fc6c0 Fix bug when the assert macro is disabled
Fixes #364
2019-06-14 14:23:38 -07:00
Max Brunsfeld
80b785daee Improve behavior of node descendant queries with single positions 2019-06-13 10:53:59 -07:00
Antonio Scandurra
25b0fbd679 Don't use clock_gettime on macOS
This commit stops using the monotonic clock API on macOS because it is 
supported only on macOS >= 10.12. Instead, it uses the fallback clock 
APIs for platforms without monotonic clock support.

The use of `clock_gettime` was causing issues on Atom because, even 
though we build it on a new macOS version supporting such API, some 
users may run Atom on older versions of macOS. On those platforms, Atom 
would crash whenever opening a file parsed with a tree-sitter grammar.
2019-06-12 19:03:46 +02:00