Douglas Creager
47f1af818a
query: Remove bits.h
2021-06-02 14:14:57 -04:00
Douglas Creager
1f6eac555c
query: Use uint32_t for capture list IDs
2021-06-02 13:19:52 -04: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
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
Niranjan Hasabnis
bd06b1a8b3
Merge branch 'nhasabni/ts_node_child_field_name' of https://github.com/nhasabni/tree-sitter into nhasabni/ts_node_child_field_name
2021-05-20 23:37:03 +00:00
Niranjan Hasabnis
e2b8130f62
Merge branch 'tree-sitter:master' into nhasabni/ts_node_child_field_name
2021-05-20 16:35:52 -07:00
Niranjan Hasabnis
c0f7022165
Function rename
2021-05-20 23:29:25 +00:00
Max Brunsfeld
399b5e4daf
Remove interior mutability for parent-node caching in Tree
...
In Rust binding, mark Tree as Sync
2021-05-20 13:56:26 -07:00
Niranjan Hasabnis
3be4bc7abb
Syntactic improvements
2021-05-17 17:52:52 +00:00
Niranjan Hasabnis
dffee22736
Adding API to get field name of a TSNode
...
This PR adds an API to get name of the field of TSNode's child.
It uses same set of arguments as that of ts_node_child, but returns
field name if it is found, otherwise it returns NULL.
This API is useful to implement custom printing of S-expressions such
as following:
"(binary_expression
(binary_expression_left (identifier))
(binary_expression_operator ("+"))
(binary_expression_right (identifier)
)"
Currently, ts_node_string does not allow any customization for printing.
2021-05-15 00:20:18 +00: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
Max Brunsfeld
beaa02331e
Merge pull request #998 from tree-sitter/node-kind-fix
...
Fix check in ts_language_symbol_type (#997 )
2021-03-17 11:49:01 -07:00
Patrick Thomson
3e4cda8353
Fix check in ts_language_symbol_type ( #997 )
...
As per Max's advice, this function should only return
`TSSymbolTypeRegular` when the metadata is both visible and named.
2021-03-17 14:12:58 -04:00
Andrew Hlynskyi
1769d1459d
fix: don't zeroing provided start position by the end zero position
2021-03-17 19:06:52 +02:00
Max Brunsfeld
a7ae7767b4
Add docs for negated field patterns
2021-03-12 15:12:24 -08:00
Max Brunsfeld
bc0ef5f373
Add negated field patterns to queries
2021-03-12 14:38:02 -08:00
Max Brunsfeld
62a61c3540
Fix some doc comments in query.c
2021-03-12 12:45:18 -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
e29d3714f7
Fix behavior of Lexer.get_column when at EOF
2021-03-11 12:11:33 -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
Max Brunsfeld
e710a14244
Simplify ts_language_has_actions so it allows non-terminals
...
Fixes #933
2021-02-26 14:52:41 -08: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
774ae5e3d5
In parse tables, store production ids as 16 bits
...
Also remove the use of bitfields from the parse table format.
In all cases, bitfields were not necessary to achieve the
current binary sizes. Avoiding them makes the binaries more
portable.
There was no way to make this change backward-compatible,
so we have finally dropped support for parsers generated
with an earlier version of Tree-sitter.
At some point, when Atom adopts this version of Tree-sitter,
this change will affect Atom users who have installed packages
using third-party Tree-sitter parsers. The packages will need
to be updated to use a regenerated version of the parsers.
2021-02-25 16:12:31 -08: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
038f4fcef8
Merge pull request #890 from wkordalski/fix-child-by-field
...
Fix getting node by field name or ID.
2021-02-10 15:58:31 -08:00
Andrew Hlynskyi
6448053efa
parser.c - added backslash escaping in LOG_LOOKAHEAD to make it clear in case of \n
2021-02-08 13:33:54 +02:00
Andrew Hlynskyi
51f8b16bb0
parser.c - make LOG_LOKAHEAD simpler according to disscussion in PR #917
2021-02-08 13:32:15 +02:00
Andrew Hlynskyi
f92ad04824
parser.c - added LOG_LOOKAHEAD macro to escape \n in logging
2021-02-08 06:23:55 +02:00
Max Brunsfeld
6dbe6a3a90
Merge branch 'master' into actions-ci
2021-02-05 10:19:05 -08:00
Wojciech Kordalski
8e89b8cdb8
Fix getting node by field name or ID.
2021-01-22 18:23:50 +01:00
Aron Griffis
e13581b041
Fix build with GCC 11
...
It seems redundant to array_init() when the structure is zeroed already
in the static assignment. But probably the fact that this code juggles
between TSTreeCursor and TreeCursor, without using a union, leaves the
compiler unable to tell that it's been initialized.
Fixes https://github.com/tree-sitter/tree-sitter/issues/853
2020-12-22 15:19:35 -05:00
Max Brunsfeld
b661050a61
Simplify setup for enabling/disabling allocation recording in the C lib
2020-12-02 15:35:13 -08:00
Max Brunsfeld
99cd283e39
query: Fix detection of repeated field names
...
Fixes #790
2020-11-02 14:07:39 -08:00
ikrima
a99676282f
noop: touch file to retrigger github checks
2020-10-29 09:36:44 -07:00
ikrima
23530ca599
CR fixes: don't allow override of allocfn during testing
2020-10-29 09:23:58 -07:00
ikrima
336517fdc9
address CR comments
...
- replace _dflt with _default
- allow override in TREE_SITTER_TEST path
2020-10-29 09:17:19 -07:00
ikrima
3859e52198
add custom allocation override
2020-10-29 09:17:19 -07: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
2465207fee
Suppress false non-null error in subtree_clone
2020-10-25 09:13:12 -07:00
Max Brunsfeld
908b102786
Add more doc comments in the C lib
2020-10-23 12:15:44 -07:00
Max Brunsfeld
d533d1f076
Allocate parent nodes together with their child array
2020-10-23 12:15:44 -07:00
Anton Kochkov
3eee1d5376
Fix compilation with TinyCC
2020-10-21 15:41:19 +08:00
ikrima
50ff4376b4
fix: ts_subtree_string not using ts_malloc
2020-10-15 20:43:30 -07:00
Max Brunsfeld
84433494a5
Fix query analysis error for rules w/ required hidden tokens
...
Refs tree-sitter/node-tree-sitter#69
2020-10-12 09:46:18 -07:00