Max Brunsfeld
fed9b98d6c
Clean up wasm store construction, avoid hard-coding initial memory size
...
Retrieve the initial memory size from the stdlib's memory import type.
2024-03-17 10:20:18 -07:00
Max Brunsfeld
7a9b3076ef
Handle memory errors occurring in wasm scanners
...
* In WASM, use a custom, simple malloc implementation that lets us
expicitly reset the heap with a new start location.
* When a WASM call traps or errors, propagate that as a parse failure.
* Reset the WASM heap after every parse.
Co-authored-by: Conrad <conrad@zed.dev>
2024-03-17 10:19:42 -07:00
Amaan Qureshi
e8dbe011d3
test: fix header writes
2024-03-17 05:36:30 -04:00
Amaan Qureshi
754aa62e89
chore: turbofish styling
2024-03-17 05:36:30 -04:00
Amaan Qureshi
99b93d83a1
feat(cli)!: add a separate build command to compile parsers
...
This allows users to build parsers without having to run `test` or
`parse` to invoke the compilation process, and allows them to output the
object file to wherever they like. The `build-wasm` command was merged
into this by just specifying the `--wasm` flag.
2024-03-17 05:36:30 -04:00
Amaan Qureshi
ad07fa8a9e
feat(bindings/rust): expose Parser::included_ranges
2024-03-12 02:29:35 -04:00
Amaan Qureshi
92675117a6
fix(generate): extern allocator functions for the template don't need to be "exported"
2024-03-05 11:19:06 -05:00
Amaan Qureshi
6b2879144f
build(deps): bump deps & lockfile
2024-02-29 02:17:30 -05:00
Amaan Qureshi
5a4765ca01
style: clippy lints
2024-02-29 02:17:30 -05:00
ObserverOfTime
b4b2d9cecc
refactor: remove extern/const where possible
2024-02-29 01:50:04 -05:00
Amaan Qureshi
d92a7a9690
test: add test case for parse stack merging with incorrect error cost bug
2024-02-28 08:51:28 -05:00
Amaan Qureshi
f1eecf9786
feat: expose the allocator and array header files for external scanners
2024-02-26 09:43:13 -05:00
Amaan Qureshi
58a4fcc792
chore: get rid of github_issue_test file
2024-02-21 12:01:25 -05:00
Amaan Qureshi
b40839cd72
style: prefer turbofish syntax where possible
2024-02-19 16:00:50 -05:00
Amaan Qureshi
fd91404ab0
style: tidying
2024-02-19 16:00:50 -05:00
Amaan Qureshi
f526be8061
test: update html tests
2024-02-19 06:36:48 -05:00
Amaan Qureshi
e32a7f3998
chore: clippy lints
2024-02-16 16:32:07 -05:00
Amaan Qureshi
4342efd57e
feat: allow specifying an external scanner's files
2024-02-16 16:31:56 -05:00
Amaan Qureshi
b6c75ccec1
chore: update relevant rust tests
2024-02-16 12:34:12 -05:00
Amaan Qureshi
e996c32108
refactor!: remove the apply-all-captures flag, make last-wins precedence the default
2024-02-16 12:34:12 -05:00
Amaan Qureshi
d80d101e34
build: move common Cargo.toml keys into the workspace and inherit them
2024-02-14 14:56:23 -05:00
Amaan Qureshi
4303ab99c9
fix: properly handle Query.matches when filtering out results
2024-02-13 16:40:05 -05:00
Amaan Qureshi
5ea0dbf77a
chore: some more clippy lints
2024-02-13 03:33:07 -05:00
Amaan Qureshi
a07f988905
refactor: extract regex check into a function and lower its precedence
2024-02-13 03:33:07 -05:00
Bedis Nbiba
7dd096c5f7
feat: implement first-line-regex
2024-02-13 01:51:41 -05:00
Amaan Qureshi
39df8e2833
chore(test): use different languages for async tests
2024-02-12 06:30:36 -05:00
Amaan Qureshi
4149ed4149
chore: provide a CLI flag to open log.html
...
On macOS, this was done by default regardless of what the user wants.
This was also not done on Windows or Linux. Instead, we now provide a
`--open-log` flag to open the log file in the default browser, and it
works on all platforms.
2024-02-11 02:28:34 -05:00
Amaan Qureshi
cca814afd2
chore: add java and tsx to corpus tests
2024-02-10 18:25:35 -05:00
Amaan Qureshi
a969fc428c
chore: move dependencies into the workspace and inherit from there
2024-02-08 15:24:09 -05:00
dundargoc
df1fe842eb
docs: various fixes
...
Closes https://github.com/tree-sitter/tree-sitter/issues/1317 .
Closes https://github.com/tree-sitter/tree-sitter/issues/1752 .
Closes https://github.com/tree-sitter/tree-sitter/issues/2439 .
Co-authored-by: Simon Hengel <sol@typeful.net>
Co-authored-by: Akash Yadav <itsaky01@gmail.com>
Co-authored-by: Sebastiaan Speck <12570668+sebastiaanspeck@users.noreply.github.com>
Co-authored-by: Laytan Laats <laytanlaats@hotmail.com>
2024-02-08 00:08:59 +01:00
Amaan Qureshi
59be1edaa1
refactor: swap &Vec[T] with &[T] where appropriate
2024-02-07 02:50:31 -05:00
dundargoc
c8bd6705cf
chore: clippy
2024-02-06 23:34:14 -05:00
Max Brunsfeld
f4788b49c0
Merge branch 'master' into wasm-stdlib
2024-02-05 11:55:58 -08:00
Amaan Qureshi
55afb4efaf
ci: remove unnecessary targets
2024-02-04 04:19:09 -05:00
Amaan Qureshi
04ff704bca
chore(cli): apply clippy fixes
2024-02-04 04:18:48 -05:00
Max Brunsfeld
e054de4191
Return an error from build-wasm if scanner uses unavailable functions
2024-02-02 12:04:49 -08:00
Amaan Qureshi
9f2dc9d6b5
fix: rework parser.h includes for test grammars and multi-grammar repos
2024-02-02 10:42:39 -05:00
Amaan Qureshi
422e74fbdb
chore: update javascript-relevant tests
2024-02-02 08:58:22 -05:00
Max Brunsfeld
d351f81b4a
Release stale instances from wasm store when languages are dropped
2024-01-29 10:17:49 -08:00
Max Brunsfeld
c4142737ec
Merge branch 'master' into language-reference-count
2024-01-25 12:43:56 -08:00
Max Brunsfeld
3c66dd2d6c
Add missing language return in ts_query_new
...
Co-authored-by: Antonio <antonio@zed.dev>
Co-authored-by: Mikayla <mikayla@zed.dev>
Co-authored-by: Joseph <joseph@zed.dev>
2024-01-25 11:06:54 -08:00
Amaan Qureshi
b26e0a8ec0
fix: account for grammars in subdirectories, add typescript to test corpus
2024-01-25 14:02:12 -05:00
Max Brunsfeld
3139760fa9
Record allocations in wasm language error test
2023-12-31 10:05:06 -08:00
Max Brunsfeld
82c1b5ead3
Fix compile error in parser hang test
2023-12-27 15:10:52 -08:00
Max Brunsfeld
4a8e4b1963
Allow wasm languages to be deleted
2023-12-27 15:00:16 -08:00
Max Brunsfeld
da16cb1459
Introduce language ref-count management C APIs, remove Copy impl for Language in Rust
2023-12-27 14:59:16 -08:00
Max Brunsfeld
034f0d0280
Merge pull request #1864 from tree-sitter/wasm-language
...
Add optional WASM feature to the native library, allowing it to run wasm-compiled parsers via wasmtime
2023-11-28 12:08:47 -08:00
Max Brunsfeld
13dd76e444
Return an informative error on failing to construct a WasmStore
2023-11-27 17:48:29 -08:00
Max Brunsfeld
ac29eab5f9
Remove tests for LookaheadIterator compilation failures
...
These add noise when running tests. Let's not add unit tests for
compilation failurs.
2023-11-27 10:32:25 -08:00
Max Brunsfeld
6fd7a1e44e
Return informative error when load_language fails
2023-11-26 12:15:05 -08:00
Max Brunsfeld
e9289d3b30
Fix error when wrong language name is passed to load_language
2023-11-24 20:25:28 -08:00
Max Brunsfeld
b59716600a
Add a test that loads multiple languages in a wasm store
2023-11-24 20:03:54 -08:00
Amaan Qureshi
0ff28346be
Merge pull request #2714 from MrPrezident/test_point_range_captures_fix
...
fix "test_point_range_captures not working"
2023-11-12 21:09:09 -08:00
MrPrezident
3c4957e940
fix "test_point_range_captures not working"
...
Fix for https://github.com/tree-sitter/py-tree-sitter/issues/105
2023-11-12 20:58:51 -06:00
Max Brunsfeld
d56d1a32ac
Fix test grammar loading in unit test
2023-11-04 12:26:00 -07:00
Max Brunsfeld
f4e2f68f14
Merge branch 'master' into wasm-language
2023-10-27 12:11:43 +01:00
Daumantas Kavolis
e26e23fd0e
Fix formatting
2023-10-25 10:24:35 +03:00
Daumantas Kavolis
e265929f90
Fix goto_previous_sibling with padded first children
2023-10-25 10:19:03 +03:00
Andrew Hlynskyi
a5a7564818
chore(rust): add error reporting for position funcs
2023-10-05 17:24:01 +03:00
Andrew Hlynskyi
d95836eb35
cicd: add en extra check for non matchable skips
2023-10-05 14:39:36 +03:00
Andrew Hlynskyi
82ddb3ddcc
cicd: add skips for fragile corpus tests
2023-10-05 07:59:35 +03:00
Amaan Qureshi
ef9cabd4b5
fix: update javascript tests and use cpp/javascript master for fixtures
2023-09-20 11:31:53 -04:00
Andrew Hlynskyi
7f7084c2cb
chore(test): panic on zero pointer deallocs for alloc tracked scopes
2023-09-03 07:12:11 +03:00
Andrew Hlynskyi
67a5dbdd93
fix: dealloc calls on zero pointers
2023-09-03 06:53:18 +03:00
Andrew Hlynskyi
08ac19086b
chore: simplify test case after query state improvements
2023-09-02 23:12:28 +03:00
Andrew Hlynskyi
52f7eaff31
chore(rust): make Query extra predicates state fully immutable
2023-09-02 23:12:28 +03:00
Amaan Qureshi
dc5ec1cf53
refactor: remove &Option<T> where used
2023-09-01 17:23:39 -04:00
Amaan Qureshi
c5cb27e522
docs: improve predicate docs
2023-08-31 16:01:37 -04:00
Amaan Qureshi
09ac28c77d
feat!: properly handle predicates used on quantified captures
2023-08-31 16:01:36 -04:00
Andrew Hlynskyi
cbce87dab1
chore: add an extra notes for hang tests
2023-08-28 14:16:36 +03:00
Andrew Hlynskyi
a9c4965dd6
cicd: exclude hang tests for exotic arches and ASAN
2023-08-28 05:39:57 +03:00
Andrew Hlynskyi
b205a1f5a2
Run parser hang test in a killable subprocess
2023-08-27 21:00:26 +03:00
Amaan Qureshi
a4ea4737ac
fix: do not increment current_included_range_index past included_range_count in __do_advance
2023-08-27 14:16:18 +03:00
Amaan Qureshi
1dbb986515
chore: add a test for an aliased anonymous symbol with flags
2023-08-23 16:55:12 +03:00
Amaan Qureshi
e3a5863287
feat: add @injection.parent to inject an injection's node with the parent language
2023-08-21 01:08:17 -04:00
Andrew Hlynskyi
ffae7d6115
fix: mark helper Rust funcs that receive raw pointers as unsafe
2023-08-20 02:12:51 +03:00
Amaan Qureshi
ac579be788
fix(safety): mark functions that potentially deref a raw pointer as unsafe
2023-08-19 18:59:11 -04:00
Amaan Qureshi
45313e0dfb
feat: add injection.self to inject a node with itself
2023-08-18 18:37:57 -04:00
Amaan Qureshi
458b5de0fc
feat: add any-of predicate
2023-08-17 22:20:57 -04:00
Amaan Qureshi
8eb92d1c64
feat: add an --apply-all-captures argument to highlight & test
2023-08-17 22:20:57 -04:00
Andrew Hlynskyi
6616d7deeb
Change edit dumps format and add indexes for all corpus tests
...
The new dumped edits format is `edit.<SEED>.<TEST_INDEX>.<SEED_INDEX>.<TEST_NAME>`
To cleanup edits:
- Instead of the standard:
> rm target/scratch/edit.*
- Use the following shell command:
> find target/scratch/ -name 'edit.*' -delete
2023-08-18 00:02:21 +03:00
Andrew Hlynskyi
caaa533b8d
test: add TREE_SITTER_DUMP_EDITS env var to dump corpus edits
...
It dumps edits to the `target/scratch` folder in a format like `<SEED>.edit`
2023-08-17 20:55:28 +03:00
Andrew Hlynskyi
0dd85c8452
Add TREE_SITTER_GRAMMAR_DEBUG env var to use debug grammars in tests
2023-08-17 18:16:41 +03:00
Jake Sarjeant
61b70943b1
feat(cli): add option to select JS runtime other than node
2023-08-03 21:34:47 +03:00
Andrew Hlynskyi
485d192880
binding_rust: set_max_start_depth accepts optional to reset limit
2023-08-03 11:45:36 +03:00
Samuel Moelius
7b01d8ee05
Add test_query_max_start_depth_more
2023-08-03 11:45:34 +03:00
Samuel Moelius
41ec8b4166
Partially revert d4d5e29
2023-08-03 11:41:50 +03:00
Andrew Hlynskyi
7816397026
Add compile fail tests for LookaheadIterator
2023-08-03 03:49:57 +03:00
Andrew Hlynskyi
4eb22ed3ae
Fix UB for LookaheadIterator
2023-08-03 03:49:57 +03:00
Andrew Hlynskyi
4f28ce4e3b
Add async context tests for Node and TreeCursor
2023-08-03 03:03:03 +03:00
Amaan Qureshi
acef7a3cdf
chore: add tests
2023-08-02 10:47:28 +01:00
Andrew Hlynskyi
a08c61235d
Fix, reference by value for Language as everywhere
2023-08-02 00:04:24 +03:00
Daumantas Kavolis
ec90c215ae
Add tests for bidirectional cursor
2023-08-02 00:02:33 +03:00
Daumantas Kavolis
1cb378b445
Add rust tests for lookahead iterator
2023-08-02 00:02:33 +03:00
Andrew Hlynskyi
19e665ef79
Add tests for TextProvider
2023-08-01 09:12:45 +03:00
Amaan Qureshi
b8f7645ae2
Merge pull request #2434 from amaanq/test-update
...
fix: retain header and divider delimiter lengths when updating tests
2023-07-27 13:40:53 -04:00
Amaan Qureshi
36c6c8aadf
Merge pull request #2423 from amaanq/nonzero-field-id
...
feat!: use `Option<NonZeroU16>` for TSFieldIds
2023-07-27 13:04:34 -04:00
Amaan Qureshi
99366f3b5d
ci(sparc64): increase timeout time
2023-07-27 12:26:25 -04:00
Amaan Qureshi
ee399e67d4
fix: retain header and divider delimiter lengths when updating tests
...
This helps to prevent visual bloat in diffs when updating tests where the delimiter is not 80 chars long
2023-07-27 03:31:46 -04:00
Amaan Qureshi
68b1006a3b
feat: add negative assertions, remove duplicate code
2023-07-25 00:27:34 -04:00
Amaan Qureshi
75e1bcf70a
refactor!: rename proc_macro to avoid conflicts when building std with -Z build-std
2023-07-24 00:44:44 -04:00
Amaan Qureshi
c521e9c18e
chore: improve error message in some spots loading grammar.json
2023-07-24 00:44:44 -04:00
Samuel Moelius
d9d4116105
Add test_consecutive_zero_or_modifiers
2023-07-19 03:27:43 -04:00
Max Brunsfeld
8310fd423e
Update node unit test to reflect C grammar change
2023-07-18 17:58:19 -07:00
Max Brunsfeld
40f7b2ec97
Fix parsing of queries that start with repetitions followed by alternatives
2023-07-18 17:57:52 -07:00
Amaan Qureshi
e77405841e
refactor: make a subdirectory for the scratch dir depending on the machine's features
2023-07-18 20:14:21 -04:00
Amaan Qureshi
76f5f81aee
chore: update test
2023-07-18 19:29:40 -04:00
Amaan Qureshi
c436897662
test: bump start_time limit for sparc64
2023-07-18 19:07:51 -04:00
Amaan Qureshi
975f3f4686
refactor!: use AtomicUsize for AllocationRecorder for portability
2023-07-16 05:14:11 -04:00
Andrew Hlynskyi
0558f1e0bf
test: add retries for all timeout tests
2023-07-16 05:05:36 +03:00
Max Brunsfeld
356f68293a
Fix false positive query match bug, introduced in #2085
2023-07-10 16:12:59 -04:00
Amaan Qureshi
3504aa3260
fix(deps): bump proc-macro2 as an unstable feature became stabilized
2023-07-10 16:12:19 -04:00
Amaan Qureshi
b192200008
fix: update tests from python grammar changes
2023-07-10 14:40:18 -04:00
Max Brunsfeld
4922602369
Merge pull request #2316 from tree-sitter/node-descendant-index
...
Add APIs for retrieving descendant counts, seeking to nodes by their descendant index
2023-06-12 15:13:43 -07:00
Max Brunsfeld
3375527a89
Fix bug in ts_tree_cursor_goto_descendant
2023-06-12 14:45:30 -07:00
Max Brunsfeld
9dd725b4e3
Start work on exposing APIs for node descendant counts and indices
2023-06-09 08:51:47 -07:00
Samuel Moelius
67f4f2328c
Add test_query_error_does_not_oob
2023-05-19 21:31:01 -04:00
Andrew Hlynskyi
da269ac350
test: add a test case to demonstrate the #2107 issue
2023-05-13 19:40:49 +03:00
Andrew Hlynskyi
ceac2380ed
chore(test): reorganize test helpers
2023-05-12 19:29:51 +03:00
Andrew Hlynskyi
85a588b5b0
Fix tests, adapt to tree-sitter-json 40a81c01a40ac48744e0c8ccabbaba1920441199
2023-04-22 12:08:50 +03:00
Andrew Hlynskyi
d4d5e29c91
feat(lib): ts_query_cursor_set_max_start_depth - use 0 to reset
2023-04-17 11:16:04 +03:00
Lewis Russell
1e81a1b67f
feat(lib): add ts_query_cursor_set_max_start_depth query API
...
This allows configuring cursors from traversing too deep into a tree.
2023-04-17 11:15:13 +03:00
Andrew Hlynskyi
0d326824d2
test: add a reproducing test for #2162
2023-04-06 04:49:39 +03:00
Andrew Hlynskyi
c1f784498f
chore: nit picking in internal proc_macro crate
2023-04-04 13:51:10 +03:00
Andrew Hlynskyi
da894afef5
cargo: specify minimum supported Rust version
2023-04-04 03:42:55 +03:00
Andrew Hlynskyi
ddb0af9509
test: use random SEED numbers
...
This is needed to omit occurrences of the same seed in a sequence of
following seeds due to the reason of that two initial seed are very
close if based on unix epoch seconds.
2023-03-16 15:17:21 +02:00
Andrew Hlynskyi
3aeef44eb6
test: run all corpus tests with 10 retries
2023-03-16 15:17:21 +02:00
Andrew Hlynskyi
588549c093
test: run test_parsing_with_a_timeout with 10 retries
2023-03-16 15:17:21 +02:00
Andrew Hlynskyi
62f8c431ae
test: add retry and test_with_seed proc macros
2023-03-16 15:17:21 +02:00
Andrew Hlynskyi
ca152a93dd
ci: fix tests
2023-03-14 20:06:31 +02:00
Max Brunsfeld
8dcf851739
Add unit test for querying within a range of a long top-level repetition
2023-02-16 12:03:51 -08:00
Max Brunsfeld
837899e456
Add API for checking if a pattern in a query is non-local
2023-02-16 11:59:34 -08:00
Max Brunsfeld
40703f110c
Fix bug in maintenance of query cursor's tree depth
2023-02-16 11:59:34 -08:00
Max Brunsfeld
bd63fb2a0d
Tweak query tests
2023-02-16 11:59:34 -08:00
Max Brunsfeld
d47713ee4a
Integrate WASM compilation into the CLI's Loader
2022-11-15 17:14:33 -08:00
Max Brunsfeld
8e3dc7cd7a
Add tests that randomly edit files with disjoint included ranges
2022-11-14 16:04:37 -08:00
Max Brunsfeld
d07f864815
Fix parse error when reusing a node at the end of an included range
2022-11-11 16:34:57 -08:00
Max Brunsfeld
da6e24de17
Fix adjustment of trees' included ranges on edits
...
Previously, when an included range started or ended *inside* of
an edit, that range did not get updated correctly.
Co-authored-by: Mikayla Maki <mikayla@zed.dev>
2022-11-07 16:52:19 -08:00
Max Brunsfeld
f0177f216e
Use library-configured allocator to free intermediate included ranges
2022-11-07 10:48:32 -08:00
Max Brunsfeld
1b86ccecc8
Merge pull request #1845 from tree-sitter/root-node-with-offset
...
Add API for applying a positional offset when accessing a tree's nodes
2022-08-25 10:51:20 -07:00
Max Brunsfeld
6b87326470
Merge pull request #1787 from kianmeng/fix-typos
...
Fix typos
2022-08-25 10:25:39 -07:00
Max Brunsfeld
53ed4cf037
Tolerate tree edits whose old range extends beyond the end of the tree
2022-08-25 10:20:40 -07:00
Max Brunsfeld
477b667753
Add ts_tree_root_node_with_offset API
2022-08-18 13:48:47 -07:00
Max Brunsfeld
548c12fb88
Fix bug where patterns with top-level alternatives were not considered 'rooted'
2022-07-07 17:53:54 -07:00
Max Brunsfeld
1401767689
query: Don't attempt to match top-level sibling patterns directly in ERROR nodes
...
Co-authored-by: Keith Simmons <keith@zed.dev>
2022-07-07 15:27:00 -07:00
Kian-Meng Ang
b8552ec6c4
Fix typos
2022-06-28 19:57:42 +08:00
Max Brunsfeld
8b5ff2ec8f
Loosen randomized changed range assertions on newline characters
...
For now, don't error if the scope changes for a newline character.
2022-06-25 17:13:46 -07:00
Max Brunsfeld
58b719541b
Fix failure to match queries with wildcard at root with range restrictions
2022-06-22 15:54:06 -07:00
Aleksei Bavshin
b27b4665ac
test: fix incorrect uses of i8 instead of c_char
...
Fixes build on aarch64, ppc64le and other platforms that have c_char
defined as u8.
2022-03-23 00:00:26 -07:00
Max Brunsfeld
7170ec7c96
Improve randomized testing setup
...
* Allow iterations to be specified via an env var
* Randomly decide the edit count, with a maximum
specified via an env var.
* Instead of separate env vars for starting seed + trial, just accept a seed
* Remove some noisy output
2022-03-02 17:12:25 -08:00