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
Max Brunsfeld
a494d6aa28
Merge pull request #1668 from tree-sitter/remember-lookahead-bytes-on-error-detection
...
Remember lookahead bytes on error detection
2022-02-26 14:59:40 -08:00
Max Brunsfeld
c697ebfb27
Add explicit unit test for error detection lookahead bug
2022-02-26 14:33:09 -08:00
Max Brunsfeld
5eb0a3090f
Merge pull request #1547 from the-mikedavis/md-test-tags
...
test tags queries in 'tree-sitter test'
2022-02-24 15:22:15 -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
Michael Davis
02abc2a063
add test for removals in eager query matches
2022-01-18 20:54:55 -06:00
Hendrik van Antwerpen
ec9b00e5c6
Handle multiple top-level alternations correctly
2022-01-11 18:33:36 +01:00
Hendrik van Antwerpen
a1a241b013
Expose quantifiers per pattern, instead of merging for all patterns in a query
2022-01-11 18:33:36 +01:00
Hendrik van Antwerpen
1f1a449c76
Improve capture quantifier computation
...
Compute quantifiers in a bottom-up manner, which allows more precise
results for alternations, where the quantifiers are now precisly joined.
2022-01-11 18:33:36 +01:00
Max Brunsfeld
622359b400
Simplify allocation-recording in test suite using new ts_set_allocator API
2021-12-30 16:09:07 -08:00
Michael Davis
e7f0cc4e24
add python test case for tag testing
2021-12-18 11:07:46 -06:00
Michael Davis
47dc88b647
add tags config fixture test helper
2021-12-18 11:07:18 -06:00
Max Brunsfeld
26dac9b2dd
Fix query bugs revealed by randomized tests
...
* Fix bugs related to named wildcard patterns vs regular wildcard patterns.
* Fix handling of extra nodes during query analysis. Previously, the
expected child_index was updated incorrectly after an extra node,
leading to false "impossible pattern" errors.
* Refine logic for avoiding unnecessary state-splitting due to fallible steps.
Compute *two* different analysis results related to step fallibility:
* `root_pattern_guaranteed` which, like before, summarizes whether the
entire pattern is guaranteed to match once this step is reached.
* `parent_pattern_guaranteed` - which just indicates whether the
immediate parent pattern is guaranteed. This is now used when
deciding whether it's necessary to split a match state.
2021-11-21 12:02:58 -08:00
Max Brunsfeld
142f4b6438
Rename Query::step_is_definite -> is_pattern_guaranteed_at_step
2021-11-21 11:37:52 -08:00
Max Brunsfeld
f69c4861c3
Add a randomized test for query matching
2021-11-21 11:29:36 -08:00
Max Brunsfeld
2f9b7ac465
Fix logging of seed in randomized test
2021-11-19 12:16:54 -08:00
Max Brunsfeld
d05c665863
Convert some of the fixture grammars from JSON to JS
...
These tests are easier to write and maintain if the grammars are just JS,
like grammars normally are. It doesn't slow the tests down significantly
to shell out to `node` for each of these grammars.
2021-10-22 18:47:23 -06:00
Max Brunsfeld
ddb12dc0c6
query: Return error on unclosed tree pattern in alternation
...
Fixes #1436
2021-10-12 09:20:43 -07:00
Max Brunsfeld
e78413832b
Restructure test suite's allocation recording so that tests can run in parallel
2021-10-11 17:24:37 -07:00
Andrew Helwer
e8e4dafa92
Fixed cargo fmt suggestions
2021-09-28 18:31:04 -04:00
Andrew Helwer
3d1f760e31
Simplified corpus test output comparisons
2021-09-28 18:27:25 -04:00
Andrew Helwer
0c3fb6e6a2
Fixed cargo fmt issues
2021-09-24 22:49:25 -04:00
Andrew Helwer
0dc1bd806f
Fixed some test failures due to CRLF line endings
2021-09-24 22:42:38 -04:00
Max Brunsfeld
8fa875b1a4
Fix possible infinite loop when running syntax highlighting tests
...
Fixes #1347
2021-08-29 15:04:23 -07:00
Andrew Hlynskyi
7f538170bf
fix(parser): count rows in the debug log from 0
2021-07-15 11:47:14 +03:00
Max Brunsfeld
9cb732859f
Update unit test to reflect HTML grammar change
2021-07-12 12:21:10 -07:00
Cameron Forbis
1ea797fbd2
run fmt
2021-06-29 13:59:21 -07:00
Cameron Forbis
ae5340901e
address code review comments
2021-06-29 13:49:43 -07:00
Cameron Forbis
9182ebef86
update set_included_ranges to modify extent if the current position is at the very beginning of the included range
2021-06-17 16:42:25 -07:00
Edgar
9feca80b08
Make HighlightConfiguration::configure use into iterator instead of a Vec<String>
2021-06-16 19:14:45 +02:00
Douglas Creager
e841fcfa1b
cli: Extract CLI configuration into separate crate
...
This patch adds the `tree-sitter-config` crate, which manages
tree-sitter's configuration file. This new setup allows different
components to define their own serializable configuration types, instead
of having to create a single monolithic configuration type. But the
configuration itself is still stored in a single JSON file.
Before, the default location for the configuration file was
`~/.tree-sitter/config.json`. This patch updates the default location
to follow the XDG Base Directory spec (or other relevant platform-
specific spec). So on Linux, for instance, the new default location is
`~/.config/tree-sitter/config.json`. We will look in the new location
_first_, and fall back on reading from the legacy location if we can't
find anything.
2021-06-10 10:21:22 -04:00
Douglas Creager
66c30648c2
rust: Extract runtime language detection into separate crate
...
This patch adds a new `tree-sitter-loader` crate, which holds the CLI's
logic for finding and building local grammar definitions at runtime.
This allows other command-line tools to use this logic too!
2021-06-09 17:42:30 -04:00
Douglas Creager
d2d01e77e3
cli: Use anyhow and thiserror for errors
...
This patch updates the CLI to use anyhow and thiserror for error
management. The main feature that our custom `Error` type was providing
was a _list_ of messages, which would allow us to annotate "lower-level"
errors with more contextual information. This is exactly what's
provided by anyhow's `Context` trait.
(This is setup work for a future PR that will pull the `config` and
`loader` modules out into separate crates; by using `anyhow` we wouldn't
have to deal with a circular dependency between with the new crates.)
2021-06-09 16:17:23 -04:00
Max Brunsfeld
f3ea60e23f
Merge branch 'master' into query-cursor-api
2021-06-02 11:51:26 -07:00
Douglas Creager
cd96552448
query: Allow configurable match limit
...
The default is now a whopping 64K matches, which "should be enough for
everyone". You can use the new `ts_query_cursor_set_match_limit`
function to set this to a lower limit, such as the previous default of
32.
2021-06-02 11:30:55 -04:00
Max Brunsfeld
d72771a19f
Make ::set_{byte,point}_range methods take a Range
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-28 14:21:11 -07:00
Max Brunsfeld
851f55afce
Report non-rooted matches that intersect cursor's range restriction
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-28 11:58:38 -07: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
fda35894d4
Stop matching new patterns past the end of QueryCursor's range
...
This restores the original signatures of the `set_byte_range` and
`set_point_range` functions. Now, the QueryCursor will properly report
matches that intersect, but are not fully contained by its range.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-25 18:02:35 -07:00
Max Brunsfeld
f597cc6a75
Preserve matches that contain the QueryCursor's start byte
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-05-25 13:06:24 -07:00
Max Brunsfeld
a61f25bc58
Add APIs for advancing a QueryCursor to an arbitrary position
2021-05-24 21:07:59 -07:00
Douglas Creager
78010722a4
query: Allow unlimited pending matches
...
Well, not completely unlimited — we're still using a 16-bit counter to
keep track of them. But we longer have a static maximum of 32 pending
matches when executing a query.
2021-05-24 11:02:58 -04:00
Max Brunsfeld
8c3d1466ec
Allow QueryCursor's text callback to return an iterator
2021-05-23 21:05:26 -07:00
Niranjan Hasabnis
c0e2b43d34
Fixing Rust formatting issue
2021-05-21 15:43:10 +00:00
Niranjan Hasabnis
c31acb8fec
Changing API name; Adding unit test and Rust bindings
2021-05-21 01:50:10 +00:00
Andrew Hlynskyi
3c0152a331
chore(fmt): Apply 'cargo fmt' to the whole code base
2021-05-19 23:21:43 +03:00
Andrew Hlynskyi
b57266cbb8
test(binding_rust): Use some redundancy to trigger more clear comliler error on the master
2021-04-22 21:00:58 +03:00
Andrew Hlynskyi
2d9a2a1855
test(binding_rust): test query captures/matches lifetime is separate from nodes lifetime
2021-04-22 21:00:58 +03:00
Max Brunsfeld
72143b17ff
Fix handling of queries with field names at the roots of patterns
...
Fixes #1018
2021-03-27 09:36:13 -07:00
Max Brunsfeld
89e1157a29
Fix handling of repetitions in query analysis
...
Fixes #1007
2021-03-19 11:00:31 -07:00
Andrew Hlynskyi
192f51324e
Added more test for byte and point ranges
2021-03-17 19:11:20 +02:00
Max Brunsfeld
bc0ef5f373
Add negated field patterns to queries
2021-03-12 14:38:02 -08:00
Max Brunsfeld
a40045a419
When editing, properly invalidate trees that depend on get_column
2021-03-11 14:46:13 -08:00
Max Brunsfeld
9dc88061d5
query: Fix last child operator with multiple children
...
Fixes #806
2021-03-09 13:40:15 -08:00
Max Brunsfeld
6ba11d7778
Fix query analysis with top-level non-terminal extras
...
Fixes https://github.com/tree-sitter/tree-sitter/issues/968#issuecomment-792314281
2021-03-08 09:33:35 -08:00
Max Brunsfeld
5a2534ac4a
Fix crash on unterminated alternation in query
...
Fixes #968
2021-03-07 08:48:03 -08:00
Max Brunsfeld
f18c36ca62
Fix handling of extra nodes in query analysis
...
Fixes #967
2021-03-06 14:35:41 -08:00
Max Brunsfeld
db6e1d9bdc
Add ts_query_cursor_did_exceed_match_limit API
2021-03-05 15:02:49 -08: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
hvithrafn
05f79f0f90
Update dependencies; fix breakage
2021-02-26 10:55:20 -07:00
Max Brunsfeld
c25fa9910e
Fix query match failure when indefinite steps have no captures
...
Fixes #937
2021-02-25 21:41:49 -08:00
Max Brunsfeld
e49a56ea4c
Merge pull request #939 from tree-sitter/partial-order-precedence
...
Allow precedences to be specified using strings and a partial ordering relation
2021-02-25 13:16:01 -08:00
Max Brunsfeld
344797c110
Implement named precedence comparison
2021-02-24 16:02:56 -08:00
Douglas Creager
a29c8d9264
Move allocation tracking into lib crate
...
We have several test cases defined in the `cli` crate that depend on the
`lib` crate's `allocation-tracking` feature. The implementation of the
actual allocation tracker used to live in the `cli` crate, close to the
test cases that use it. The `allocation-tracking` feature in the `lib`
crate was just used to tell the tree-sitter implementation to expect
that the allocation tracker exists, and to use it.
That pattern meant that we had a circular dependency: `cli` depends on
`lib`, but `lib` required some code that was implemented in `cli`.
That, in turn, caused linker errors — but only when compiling in certain
configurations! [1]
This patch moves all of the allocation tracking implementation into the
`lib` crate, gated on the existing `allocation-tracking` feature, which
fixes the circular dependency.
Note that this patch does **not** fix the fact that feature unification
causes the `lib` crate to be built with the `allocation-tracking`
feature enabled, even though it's not a default. Fixing that depends on
the forthcoming version 2 feature resolver [2], or using the `dev_dep`
workaround [3] in the meantime.
[1] https://github.com/tree-sitter/tree-sitter/issues/919
[2] https://doc.rust-lang.org/nightly/cargo/reference/features.html#feature-resolver-version-2
[3] https://github.com/tree-sitter/tree-sitter/issues/919#issuecomment-777107086
2021-02-23 09:16:37 -05:00
Max Brunsfeld
73e252e39b
Add unit test for child_by_field_name w/ hidden nodes
2021-02-10 16:14:24 -08:00
Max Brunsfeld
6dbe6a3a90
Merge branch 'master' into actions-ci
2021-02-05 10:19:05 -08:00
Max Brunsfeld
391fc8c340
Update unit tests to expect ruby grammar change
2020-12-20 19:34:45 -08:00
Max Brunsfeld
026231e93d
Merge branch 'master' into HEAD
2020-12-03 09:44:33 -08:00
Max Brunsfeld
b661050a61
Simplify setup for enabling/disabling allocation recording in the C lib
2020-12-02 15:35:13 -08:00
Patrick Thomson
0b4661e401
Really fix the tests.
2020-11-23 11:41:16 -05:00
Patrick Thomson
c1a8985712
Merge remote-tracking branch 'origin/master' into query-testy
2020-11-23 11:10:53 -05:00
Max Brunsfeld
b267f90e64
Update unit tests to reflect python and ruby grammar changes
2020-11-16 10:51:08 -08:00
Patrick Thomson
c9c886d971
Merge remote-tracking branch 'origin/master' into query-testy
2020-11-10 16:16:53 -05:00
Max Brunsfeld
99cd283e39
query: Fix detection of repeated field names
...
Fixes #790
2020-11-02 14:07:39 -08:00
Max Brunsfeld
c2c63baf5b
query: Fix escape sequence parsing in anonymous node patterns
...
Fixes #776
Fixes #760
2020-10-28 13:55:13 -07:00
Max Brunsfeld
a2d760e426
Ensure nodes are aliased consistently within syntax error nodes
...
Co-Authored-By: Rick Winfrey <rewinfrey@github.com>
2020-10-27 15:46:09 -07:00
Patrick Thomson
1aee60a7c0
propitiate the tests
2020-10-26 14:35:18 -04:00
Max Brunsfeld
0a46033391
Remove duplication of LossyUtf8 helper
2020-10-14 11:35:50 -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
d1c95193c1
query: Fix invalid use of slice::from_raw_parts
2020-10-05 12:08:53 -07:00
Max Brunsfeld
ba239ce4ab
Make query error line numbers consistently display 1-indexed
2020-09-24 15:03:51 -07:00
Max Brunsfeld
518916f221
Return correct path and line in query errors from the CLI
2020-09-24 13:47:27 -07:00
Max Brunsfeld
297e2bcb28
static query analysis: Fix handling of fields in hidden nodes
2020-09-23 16:55:48 -07:00
Max Brunsfeld
cb343cad5e
Avoid reusing the root node during incremental parsing
...
Fixes #712
2020-09-23 12:59:27 -07:00
Max Brunsfeld
21c3bbc4b4
Account for supertypes during query analysis
2020-09-23 10:55:31 -07:00
Max Brunsfeld
8835dfda99
Fix test for supertypes in queries
2020-09-21 13:11:54 -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
4aba684d66
Control recursion depth explicitly during query analysis
2020-08-24 16:55:56 -07:00
Max Brunsfeld
2eb04094f8
Handle aliased parent nodes in query analysis
2020-08-21 14:12:04 -07:00
Max Brunsfeld
456b1f6771
Fix handling of alternations and optional nodes in query analysis
2020-08-20 16:28:54 -07:00
Max Brunsfeld
9daec9cb22
Tweak impossible pattern error messages
2020-08-20 13:35:11 -07:00
Max Brunsfeld
4301110c12
query: Indicate specific step that's impossible
2020-08-20 13:06:38 -07:00
Max Brunsfeld
bd42729a41
query: Avoid early-returning captures due to predicates
2020-08-18 13:01:45 -07:00
Max Brunsfeld
604f9e8148
query: Assign is_definite correctly for steps within nested sub-patterns
2020-08-18 10:55:03 -07:00
Max Brunsfeld
91fc9f5399
Use is_definite flag in ts_query_cursor_next_capture
2020-08-17 16:50:59 -07:00
Max Brunsfeld
228a9e28e1
Add tests for impossible queries
2020-08-17 13:27:17 -07:00
Max Brunsfeld
c3f9b2b377
Fix query analysis bugs found in ruby tags query
2020-08-17 09:57:06 -07:00
Max Brunsfeld
1ea29053e1
Merge branch 'master' into query-pattern-is-definite
2020-08-14 09:31:55 -07:00
Patrick Thomson
94ab884ee4
Add a test.
2020-08-05 12:16:09 -04:00
Patrick Thomson
5c86a9c654
Fix the tests
2020-08-05 11:52:07 -04:00