Amaan Qureshi
9ef12624c3
feat(cli): add a no-ranges flag to the parse command
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 13s
2024-09-26 22:43:01 -04:00
Amaan Qureshi
e04387258b
feat(schema): misc improvements
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 13s
CI / checks (push) Has been cancelled
2024-09-24 15:51:26 -04:00
Amaan Qureshi
86d3a5313d
fix: disallow empty string literals in rules
2024-09-24 15:36:38 -04:00
Amaan Qureshi
1708a295a8
fix: do not generate spurious files if the grammar path is not the default path
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 13s
2024-09-24 14:34:52 -04:00
Amaan Qureshi
bc072a52f8
refactor(cli): break out subcommand logic into separate functions
...
Co-authored-by: buckynbrocko <77247638+buckynbrocko@users.noreply.github.com>
2024-09-24 13:23:49 -04:00
Amaan Qureshi
1f0feb5254
feat: add shell completions
2024-09-24 12:46:38 -04:00
Amaan Qureshi
d3c262a104
fix(test): correctly handle assertions on empty lines
...
Also fixes assertions for captures spanning on multiple lines.
Co-authored-by: Thomas Vigouroux <thomas.vigouroux@protonmail.com>
2024-09-24 12:36:33 -04:00
Amaan Qureshi
cc4378e751
feat(test): test all queries
...
Fallback to default testing for all queries present in the parser's
queries directory.
For a given query <QUERY>.scm, the test files are searched in
test/<QUERY>/*
Also mimic the output of other test-running subcommands when testing
queries.
Co-authored-by: Thomas Vigouroux <thomas.vigouroux@protonmail.com>
2024-09-24 12:36:33 -04:00
Amaan Qureshi
52f696096d
feat: provide a rebuild flag to force rebuild parsers
2024-09-24 11:27:59 -04:00
Samuel Tardieu
1aa28e04ee
style(tests): do not use .as_bytes().len() on strings
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 13s
CI / checks (push) Has been cancelled
2024-09-22 20:27:38 -04:00
Will Lillis
99dbbbcbe9
fix(fuzz): skip tests marked with :skip & don't report errors on tests marked with :error
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 13s
2024-09-22 03:46:52 -04:00
Amaan Qureshi
4934a16173
feat: add root field in node-types.json
2024-09-22 01:48:03 -04:00
Amaan Qureshi
6f050f0da5
fix: properly handle utf8 code points for highlight and tag assertions
2024-09-22 01:03:59 -04:00
Amaan Qureshi
0a85744eba
fix(lib): peek at the next sibling when iterating to find the child that contains a given descendant
...
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 13s
This issue shows up when we have a zero-width token that is the target
descendant node, previously the previous sibling would be returned as
the child that contains the descendant, which is incorrect.
2024-09-17 04:37:43 +02:00
ObserverOfTime
6e19fccf39
chore(bindings): update rust lib docs
2024-09-17 03:40:48 +02:00
Dave Abrahams
112acd5b93
fix(generate): remove excludes in Package.swift
2024-09-16 21:40:21 -04:00
Hanlu
ff813a311b
fix: correct comment quote
2024-09-16 21:39:49 -04:00
Will Lillis
b0e8e50a19
fix(cli): remove duplicate short options from fuzz command ( #3635 )
...
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 13s
CI / checks (push) Has been cancelled
- Remove short option from fuzz command edits option
- Remove short option from fuzz command iterations option
2024-09-15 11:04:12 +03:00
Amaan Qureshi
7e3f572655
feat: add field_name_for_named_child
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 12s
CI / checks (push) Has been cancelled
2024-09-09 11:05:29 -04:00
Amaan Qureshi
d8ab779df4
fix(generate): do not generate large character sets for unused variables
2024-09-08 15:42:18 -04:00
Amaan Qureshi
cbd3bb5b9a
feat!: remove the build-wasm subcommand
...
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 11s
CI / build (push) Failing after 11s
`build --wasm` should be used instead
2024-09-08 13:41:26 -04:00
Amaan Qureshi
10e474f488
feat!: remove filter flag from commands in favor of include and exclude
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 11s
CI / build (push) Failing after 12s
2024-09-07 20:53:04 -04:00
Amaan Qureshi
5e46fef0d7
chore: clippy lints
2024-09-07 20:31:20 -04:00
Jinser Kafka
fd190f1d9d
fix(cli): keep skipped tests unchanged in the test/corpus
2024-09-07 18:55:49 -04:00
Amaan Qureshi
4d3d1f0df2
fix(generate): add tree-sitter to the dev-dependencies of the Cargo.toml
2024-09-07 17:46:09 -04:00
Amaan Qureshi
272ebf77b9
fix(test): retain attributes when running test -u
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 13s
2024-09-01 06:18:55 -04:00
Amaan Qureshi
0a486d508f
fix(test): exit with an error if a test marked with :error has no error
2024-09-01 06:18:55 -04:00
Amaan Qureshi
ee06325f67
fix(lib): correct extra node creation from non-zero root-alias cursors
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 13s
2024-08-31 23:58:19 -04:00
Amaan Qureshi
53cc93c267
fix(generate): disallow inline variables referencing themselves
...
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 13s
This fixes an infinite loop bug
2024-08-31 16:57:23 -04:00
Amaan Qureshi
3f424c0121
feat: add an API to time out query executions
...
Currently, if a predicate is hard to match on the Rust side, a sizable
query against a very large file can take forever, and ends up hanging.
This commit adds an API function `ts_query_cursor_set_timeout_micros` to
limit how long query execution is allowed to take, thereby negating the
chance of a hang to occur.
2024-08-31 14:33:28 -04:00
Amaan Qureshi
d0125ef387
feat(bindings): bump go-tree-sitter version
2024-08-29 22:50:27 -04:00
Amaan Qureshi
278526ef75
fix(cli): remove conflicting short flags in the fuzz subcommand
2024-08-29 22:07:41 -04:00
Amaan Qureshi
b5a91a4a85
feat(generate): bump tree-sitter dev dependency to 0.23
2024-08-29 22:07:33 -04:00
Amaan Qureshi
253a112dd4
fix(generate): remove necessary files from gitignore template
2024-08-29 21:50:20 -04:00
Amaan Qureshi
fc4d7bd995
fix(cli): dedup preceding_auxiliary_symbols
2024-08-26 09:03:08 -04:00
ObserverOfTime
ff8b50caa6
build(bindings): use language version in soname
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 12s
2024-08-25 15:03:13 -04:00
Amaan Qureshi
6ef76858c0
fix!: revert interning of a sequence or choice of a single rule
...
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 12s
This reverts commit 252e2a4bc0
2024-08-24 19:43:04 -04:00
Amaan Qureshi
973b01071e
fix(go): update parser name in binding files, add to docs
2024-08-24 19:24:06 -04:00
Amaan Qureshi
2150c91114
fix(bindings): update go bindings
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 12s
2024-08-23 23:51:04 -04:00
Ryan Patterson
b5e4ef6d9a
clone wasm store engine ( #3542 )
...
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 13s
This resolves https://github.com/tree-sitter/tree-sitter/issues/3454 .
This brings the usage of wasmtime::Engine in line with how wasmtime
intends it to be used. All wasmtime functions that receive an Engine
always receive an `&Engine`, never an owned `Engine`. They are always
responsible for cloning the reference if they need it.
This brings the usage of wasmtime::Engine in line with how TSParser
treats TSLanguages: when setting a language to the parser, the parser is
responsible for cloning the reference to the TSLanguage. It is
counterintuitive for TSParser to have different behavior when receiving
wasmtime_engine_t.
C API users also expect this behavior, see "Memory Management"
[here](https://docs.wasmtime.dev/c-api/wasm_8h.html ). Talking about the
C API: without this change, failing to clone the `wasmtime_engine_t`
(which, again, is never something API users need to do in wasmtime) and
then reusing the engine in multiple TSLanguages results in a use after
free. With this change, failing to call `wasm_engine_delete` on your
owned Engine results in a memory leak. Memory leaks are safer than
use-after-free.
2024-08-22 08:01:37 -07:00
ObserverOfTime
f459c3d872
feat(bindings)!: use capsules in python
2024-08-20 12:33:11 +03:00
Amaan Qureshi
6dd459b4ab
fix(lib): an empty root node should not precede an empty range
...
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 13s
The problem is, given an empty file, the root node of this file spans 0
bytes. As such, the logic for determining whether or not the node
precedes the range fails, and is true when it should be false.
2024-08-17 17:05:26 -04:00
Ron Panduwana
2bb20fe2fe
feat: allow external scanners to use the logger
...
Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
2024-08-17 14:46:28 -04:00
Amaan Qureshi
fec6c77da8
fix(generate): rename cargo.toml template
...
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 11s
CI / build (push) Failing after 12s
This fixes issues with vendoring on case-insensitive file systems
2024-08-17 01:39:52 -04:00
ObserverOfTime
2eeeed0f2a
fix(make): fail properly on Windows
2024-08-17 00:51:27 -04:00
buckynbrocko
7583d394b4
feat(cli): add --show-fields flag to test command ( #3502 )
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 13s
CI / checks (push) Has been cancelled
2024-08-03 21:54:18 +03:00
Ryan Patterson
779566f588
Reset language when resetting wasm store ( #3495 )
...
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 12s
CI / checks (push) Has been cancelled
* Reset language when resetting wasm store
* test behavior of language copying
2024-07-31 10:30:58 -07:00
ObserverOfTime
3950dddfde
fix(rust): fix new clippy warnings
2024-07-28 10:12:32 +03:00
Amaan Qureshi
25c7189180
feat(lib): add ts_query_end_byte_for_pattern
2024-07-07 20:29:09 -04:00
Amaan Qureshi
a59a530049
fix(dsl): improve error message when a rule function returns undefined
2024-07-05 19:11:01 -04:00
Quentin LE DILAVREC
9610a84600
fix(lib): restrict pattern_map optimization when a wildcard step has an immediate first child
...
Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
2024-07-05 03:35:24 -04:00
Amaan Qureshi
6ec478c1e9
fix: do not "absorb" rules that consist of a single terminal if the rule is hidden
2024-06-21 20:20:02 -04:00
Amaan Qureshi
252e2a4bc0
fix: intern a sequence or choice of a single element the same as the element itself
2024-06-21 20:20:02 -04:00
Amaan Qureshi
a73191bf0e
fix: better error when a supertype rule is invalid
2024-06-03 06:35:27 -04:00
Amaan Qureshi
e553578696
feat: add fuzz subcommand
2024-05-30 23:00:45 -04:00
Amaan Qureshi
fc146ad510
refactor: remove difference dependency
2024-05-25 23:04:28 -04:00
Amaan Qureshi
c440f2a7c6
refactor: remove ansi_term dependency
2024-05-25 21:09:28 -04:00
Max Brunsfeld
38137c71b2
feat!: introduce tree-sitter-language crate for grammar crates to depend on
...
Co-authored-by: Conrad <conrad@zed.dev>
Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
2024-05-24 21:54:07 -04:00
ObserverOfTime
04b9eb5700
feat(bindings): update npm scripts
2024-05-24 17:35:12 -04:00
ObserverOfTime
629395fd58
feat(bindings): add node, python, swift tests
2024-05-24 16:55:05 -04:00
ObserverOfTime
055d0cbd34
feat(dsl)!: support other JS runtimes
2024-05-24 16:53:33 -04:00
ObserverOfTime
d77279d2e3
style(bindings): fix indent & line endings
...
- Use 2 spaces for parser.c
- Don't force LF line endings
2024-05-24 15:45:48 -04:00
ObserverOfTime
fd0e1c7b5b
feat(bindings): add query constants to python
2024-05-24 15:31:38 -04:00
Amaan Qureshi
a88fc9cf63
fix: always reset to the first language when iterating over language attributes
2024-05-19 19:40:47 -04:00
ObserverOfTime
636801770e
feat(cli): add debug build flag
2024-05-17 16:12:56 -04:00
Amaan Qureshi
8e8648afa9
fix(test): multi-grammar corpus tests are now in the repo root
2024-05-06 15:25:42 -04:00
Amaan Qureshi
b1fd3214db
feat(cli): bump unicode data to v15.1.0
2024-05-06 15:25:42 -04:00
WillLillis
577d333849
feat(cli): add test listing and allow users to parse a specific test number
2024-05-05 16:35:17 -04:00
Amaan Qureshi
33045ee898
fix(test): allow newlines in between test name and attribute
2024-05-05 15:19:42 -04:00
Amaan Qureshi
1e219ff9eb
fix(cli): properly account for multi-grammar repos when using docker to build a wasm parser
2024-05-05 14:56:42 -04:00
ObserverOfTime
572cdaa7c0
ci: fix address sanitizer step
2024-05-05 13:06:45 -04:00
ObserverOfTime
a2d2da314d
fix(cli): keep default cc flags in build
2024-05-05 13:06:45 -04:00
Amaan Qureshi
67a043911c
test: temporarily disable php test
2024-05-04 03:05:58 -04:00
Amaan Qureshi
4c083252ec
fix(lib): advance the lookahead end byte by 4 when there's an invalid code point
...
This helps in the case where an edit was made in the middle of a code
point, but bytes 1-3 are valid, thus we could advance by at most 4 bytes
2024-04-30 20:55:43 -04:00
Amaan Qureshi
61d0395543
fix(lib): do not return field names for extras
2024-04-30 19:23:11 -04:00
WillLillis
946acfd70f
feat(cli): support NO_COLOR
...
Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
This allows users to avoid colored output when NO_COLOR is set to 1.
2024-04-29 20:25:41 -04:00
Amaan Qureshi
627617edb4
refactor(tests): migrate remaining grammar.json tests to grammar.js
2024-04-29 00:01:35 -04:00
Amaan Qureshi
26fa3a76a5
fix(generate): take AsRef<Path> for the path parameter to avoid clones
2024-04-27 17:09:36 -04:00
ObserverOfTime
5aad87a74c
fix(generate): don't check arbitrarily named dirs
...
i.e. check `bindings/swift` rather than `bindings/swift/TreeSitterFoo`
since the dir name may have different casing (e.g. `TreeSitterFOO`)
2024-04-27 17:09:36 -04:00
Amaan Qureshi
41308888fc
fix: don't error out on package.json lookup errors if --no-bindings is passed
2024-04-27 16:29:26 -04:00
Amaan Qureshi
517e61b3e6
fix: improve error message when the tree-sitter field is malformed
2024-04-27 16:29:26 -04:00
vanaigr
90e0e28b95
feat: reverse iteration through node parents ( #3214 )
2024-04-23 15:19:57 +01:00
ObserverOfTime
83b6010461
feat(grammar): add "inherits" field if available
2024-04-14 15:59:01 -04:00
Max Brunsfeld
295344b142
fix: Avoid generating unused character set constants
2024-04-14 09:57:10 -07:00
Amaan Qureshi
9ba8f6dfe6
fix(cli): test parsing on windows
2024-04-12 21:09:28 -04:00
Max Brunsfeld
63fa0f23f2
Include 2-character ranges in array-based state transitions
2024-04-12 16:40:04 -07:00
Max Brunsfeld
056237f18b
Fix sorting of transitions within a lex state
2024-04-12 16:21:57 -07:00
Max Brunsfeld
7ec40b0ab4
Implement single-char state transitions using a static array and for loop
...
This reduces compile time, compared to generating many individual if statements.
2024-04-12 14:40:11 -07:00
Max Brunsfeld
3210c7e21f
Avoid using a large character set constant when it doesn't reduce code size
2024-04-12 12:01:23 -07:00
Max Brunsfeld
3498498449
Merge branch 'master' into simpler-large-char-set-code
2024-04-12 10:03:46 -07:00
Max Brunsfeld
15fe07a20e
Clean up code generation for lexer state transitions
2024-04-12 09:02:33 -07:00
Amaan Qureshi
96d18408a3
refactor(js): misc fixes & tidying
2024-04-11 22:35:43 -04:00
Amaan Qureshi
abc7910381
refactor(rust): misc fixes & tidying
2024-04-11 22:35:43 -04:00
Amaan Qureshi
5825e24d56
style: wrap comments
2024-04-11 22:35:43 -04:00
Amaan Qureshi
b35efa8f33
style: format imports
2024-04-11 22:35:43 -04:00
Amaan Qureshi
a48054f1ae
fix: wrong flag check in build.rs
2024-04-11 22:31:10 -04:00
Max Brunsfeld
1f0707e1ac
Fix clippy warnings
2024-04-11 16:29:59 -07:00
Max Brunsfeld
b8701fcf18
Check EOF when checking a large char set that contains the null character
2024-04-11 16:19:21 -07:00
Max Brunsfeld
be6e6d3708
Merge branch 'master' into simpler-large-char-set-code
2024-04-11 16:03:20 -07:00
Max Brunsfeld
18ea74ee12
Merge pull request #3280 from ObserverOfTime/reduce
...
refactor(parser): make REDUCE macro non-variadic
2024-04-11 15:39:28 -07:00
Ron Panduwana
c051a90ac5
fix: insert "tree-sitter" section in current directory's package.json if it exists
...
Co-authored-by: ObserverOfTime <chronobserver@disroot.org>
2024-04-11 17:09:35 -04:00
ObserverOfTime
63babea301
fix: proper function prototypes
2024-04-11 16:28:21 -04:00
ObserverOfTime
50dfd409f6
fix(bindings): generate parser.c if missing
2024-04-11 16:28:21 -04:00
ObserverOfTime
7830877f63
fix(bindings): add utf-8 flag to python & node
2024-04-11 16:27:50 -04:00
ObserverOfTime
818cd8c291
refactor(parser): make REDUCE macro non-variadic
2024-04-11 20:47:08 +03:00
Amaan Qureshi
8bfe4e1f6b
fix: add back build-wasm temporarily
2024-04-11 10:48:30 -04:00
Ron Panduwana
33de5ef849
fix: default output directory for build --wasm should use current_dir
2024-04-11 10:48:30 -04:00
Amaan Qureshi
895c7680e7
fix(windows): add /utf-8 flag for parsers using unicode symbols
2024-04-11 09:44:51 -04:00
Sebastian Lackner
5dc62cc828
fix(cli): fix mismatched parenthesis when accounting for &&
2024-04-11 09:01:56 -04:00
Max Brunsfeld
3d088888f5
Derive large character sets from lex states for individual tokens
2024-04-10 16:53:39 -07:00
Max Brunsfeld
be34bc9430
Identify large char sets for lexer using NFA transitions
2024-04-09 17:53:37 -07:00
Amaan Qureshi
21c06101aa
fix(bindings): remove required platforms for swift
2024-04-08 17:56:05 -04:00
Amaan Qureshi
0d2dea9e0e
fix(test): allow colons in test names
2024-04-08 17:56:05 -04:00
Amaan Qureshi
a9172e0caa
fix: add a semicolon after SKIP macros
2024-04-08 17:56:05 -04:00
Amaan Qureshi
abed43a169
chore: clippy fix
2024-04-08 17:56:05 -04:00
ObserverOfTime
78b6067a5d
fix(parser): fix variadic macro
2024-04-02 03:18:05 -04:00
Max Brunsfeld
39be6972fe
Use static arrays and a fixed binary search for large char set checks
2024-03-29 23:00:48 -07:00
Amaan Qureshi
62cd13a3de
test: add regression test for node parent + string bug
2024-03-20 19:23:08 -04:00
Max Brunsfeld
09b18fad5b
Merge pull request #3181 from tree-sitter/handle-wasm-oom
...
When loading languages via WASM, gracefully handle memory errors and leaks in external scanners
2024-03-18 13:15:06 -07:00
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
ObserverOfTime
4bbaee2f56
fix(lib): allow hiding symbols
2024-03-17 07:21:06 -04:00
ObserverOfTime
4b12eab927
feat(lib): implement Display for Node
2024-03-17 06:12:28 -04: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
ObserverOfTime
1ff40f5571
fix(lib): makefile installation
2024-03-12 18:14:58 -04:00
Amaan Qureshi
81d90c7cd8
fix(lib): makefile installation on macOS
2024-03-12 15:53:31 -04:00
Amaan Qureshi
ad07fa8a9e
feat(bindings/rust): expose Parser::included_ranges
2024-03-12 02:29:35 -04:00
Amaan Qureshi
0a5a564ea7
0.22.0
2024-03-10 17:15:08 -04:00
ObserverOfTime
e9b3f65ceb
fix(bindings): fix template oversights
2024-03-10 15:48:23 -04:00
Christopher Durham
78cc77e7b2
refactor!: remove redundant escape regex & curly brace regex preprocessing
...
The regex-syntax crate now natively supports literal escapes for all
ASCII characters except those in [0-9A-Za-z<>].
2024-03-10 14:47:11 -04:00
ObserverOfTime
b60b2489aa
feat(bindings): remove dsl types file
2024-03-10 10:06:17 -04:00
ObserverOfTime
072865e450
feat(bindings): add prebuildify to node
...
Co-Authored-By: Amaan Qureshi <amaanq12@gmail.com>
2024-03-10 10:06:17 -04:00
ObserverOfTime
69cf13bc05
feat(bindings): add peerDependencies for npm
2024-03-10 10:06:17 -04:00
Amaan Qureshi
17e50c4c57
fix: allow the regex v flag
2024-03-10 09:50:29 -04:00
Amaan Qureshi
4b578a3649
fix(generate): camel case name in Cargo.toml description
2024-03-06 19:53:51 -05:00
ObserverOfTime
2d652c90a7
fix(cli): only output the sources with --no-bindings
2024-03-06 13:56:40 -05: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
54a31069af
fix: parsers should export the language function on windows
2024-03-05 11:19:06 -05:00
Amaan Qureshi
304f8b7c04
fix: don't use __declspec(dllexport) on windows
2024-03-04 13:23:06 -05:00
Amaan Qureshi
f8c41f74f8
fix(bindings): insert types after main if it exists
2024-03-03 11:17:30 -05:00
Amaan Qureshi
57d01335c0
chore: delete binding_files.rs
2024-03-03 10:46:37 -05:00
Amaan Qureshi
27f52266ac
feat: replace nan with node-addon-api and conditionally print logs
2024-03-03 10:46:37 -05:00
Segev Finer
30bb44f48a
feat: add typings for the node bindings
...
Fixes #3072
2024-03-03 10:46:37 -05:00
geekvest
b43e8ce902
docs: remove duplicate the's
...
Signed-off-by: geekvest <cuimoman@sohu.com>
2024-03-03 10:30:21 -05:00
Segev Finer
1dd35fe0e0
feat(node): type tag the language
...
Co-authored-by: ObserverOfTime <chronobserver@disroot.org>
2024-03-02 20:59:20 -05:00
ObserverOfTime
924c2b4425
chore(bindings): ignore more artifacts
2024-03-02 20:13:39 -05:00
ObserverOfTime
f7c6dcadaa
feat(bindings): add more make targets
2024-03-02 20:13:39 -05:00
Amaan Qureshi
c66ed6a141
fix: and binding.gyp...
2024-03-01 11:02:33 -05:00
Amaan Qureshi
274d0cda0a
fix: binding.cc overwrite should replace PARSER_NAME
2024-03-01 10:59:25 -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
Amaan Qureshi
60a935139b
refactor!: remove top-level corpus dir for tests
...
It's confusing to have tests in two different top-level directories when working between different grammars, and most of them use `test/corpus` which is more fitting, so time to go.
2024-02-29 02:17:30 -05:00
Amaan Qureshi
4ff33e81bb
fix(assertions): case shouldn't matter for comment node detection
2024-02-29 02:17:30 -05:00
Amaan Qureshi
8c4861c186
feat(test): add attributes for corpus tests
2024-02-29 02:17:30 -05:00
ObserverOfTime
b3c14c9295
build(bindings): make everything c11
2024-02-29 01:50:04 -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
Segev Finer
e87cf7ef15
refactor(bindings)!: convert node bindings to NAPI
...
Co-authored-by: Boris Verkhovskiy <boris.verk@gmail.com>
Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
Co-authored-by: ObserverOfTime <chronobserver@disroot.org>
2024-02-27 17:06:25 -05:00
Amaan Qureshi
eb332ffa4d
style(bindings): consistent wording
2024-02-27 16:07:38 -05:00
ObserverOfTime
502dacf220
refactor: rename TS_REUSE_ALLOCATOR flag
...
TREE_SITTER_REUSE_ALLOCATOR is more consistent
2024-02-27 15:54:38 -05:00
ObserverOfTime
46520eda58
build(bindings): metadata improvements
2024-02-27 15:54:38 -05:00
Amaan Qureshi
f7c13406c9
build: add uninstall command
2024-02-27 15:54:38 -05:00
ObserverOfTime
799833f9cf
build: use c11 everywhere
...
And improve the makefiles
2024-02-27 15:54:38 -05:00
ObserverOfTime
412a6a774e
refactor(bindings): remove npmignore
...
Replace with package.json files
2024-02-27 06:22:00 -05:00
Amaan Qureshi
8ae3870b51
fix(generate): add .npmignore, populate Swift's exclude list
2024-02-26 14:30:48 -05:00
ObserverOfTime
721eca2394
fix(bindings): editorconfig and setup.py fixes
2024-02-26 12:00:16 -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
9e5bf6591f
feat: improve language bindings
...
Co-authored-by: ObserverOfTime <chronobserver@disroot.org>
2024-02-25 19:06:01 -05:00
Max Brunsfeld
29d3583bdf
Use workspace dependencies for internal crates
2024-02-25 11:14:29 -08:00
Amaan Qureshi
32c23b6c90
fix: wrap || comparison in parenthesis when && is used
2024-02-24 01:35:40 -05:00
Max Brunsfeld
1f751bbd5f
Merge pull request #2841 from segevfiner/patch-1
...
Make Node.js language bindings context aware
2024-02-23 11:23:11 -08:00
Will Lillis
f894a5350c
feat(cli): add optional config-path argument
2024-02-21 12:02:12 -05:00
Amaan Qureshi
58a4fcc792
chore: get rid of github_issue_test file
2024-02-21 12:01:25 -05:00
Amaan Qureshi
38efefd8bd
style: cleaner cast
2024-02-21 12:01:25 -05:00
Amaan Qureshi
167855b289
fix(test): edge case when parsing UNEXPECTED/MISSING nodes with an indentation level greater than 0
2024-02-21 12:01:25 -05:00
Amaan Qureshi
a1a3903c10
fix(test): allow writing updates to tests without erroneous nodes instead of denying all of them if a single error is found
2024-02-21 12:01:25 -05:00
Amaan Qureshi
b97208704b
fix(cli): don't use long for grammar_path
...
Co-authored-by: buckynbrocko <77247638+buckynbrocko@users.noreply.github.com>
2024-02-19 16:05:08 -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
d95fcc83b9
fix: remove redundant imports
2024-02-19 06:36:48 -05:00
Amaan Qureshi
f526be8061
test: update html tests
2024-02-19 06:36:48 -05:00
Amaan Qureshi
5b299eafe5
fix: don't throw an error if the user uses map in the grammar
2024-02-18 00:26:14 -05:00
Amaan Qureshi
da1f890752
chore: error out when multiple arguments are passed to token/token.immediate
2024-02-17 01:26:44 -05:00
Amaan Qureshi
8dd65ccbc0
refactor: &PathBuf -> &Path
2024-02-17 00:45:28 -05:00
Amaan Qureshi
ef1b714e08
fix(cli): don't update tests automatically if parse errors are detected
2024-02-16 20:23:39 -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
Nickolay
6895b7a1e1
Add some documentation to the playground page
...
The minimal UI of the Playground could benefit from some documentation to make it easier for the newer users to understand what's going on. Also added a link to the new documentation from the local playground.
Closes https://github.com/tree-sitter/tree-sitter/issues/1305
2024-02-15 16:24:21 +01: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
73f56bffa9
fix: sexp format edge case with quoted closed parenthesis
2024-02-13 18:31:28 -05:00
Amaan Qureshi
4303ab99c9
fix: properly handle Query.matches when filtering out results
2024-02-13 16:40:05 -05:00
Amaan Qureshi
7e0dd7b9c1
feat(cli): add an optional grammar-path argument for the playground
2024-02-13 16:28:54 -05:00
Amin Yahyaabadi
51c147053e
feat: error out if an empty string is in the extras array
...
This prevents never-ending loops in the parser
2024-02-13 15:00:48 -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
21f25a5305
feat: improve error message for files with an unknown grammar path
2024-02-12 17:17:37 -05:00
Amaan Qureshi
3da79ba2b6
fix: update schema for regex flags
2024-02-12 15:39:14 -05:00
Amaan Qureshi
39df8e2833
chore(test): use different languages for async tests
2024-02-12 06:30:36 -05:00
Amaan Qureshi
e6d67ecde0
chore(wasm): use SIDE_MODULE=2 to silence warning
2024-02-11 20:18:30 -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
ce5f5fffc1
chore(generate): dedup and warn about duplicate or invalid rules
2024-02-11 01:28:31 -05:00
Amaan Qureshi
78ccc39ca9
fix: properly error out when the word property is an invalid rule
2024-02-11 00:37:23 -05:00
Amaan Qureshi
cca814afd2
chore: add java and tsx to corpus tests
2024-02-10 18:25:35 -05:00
Amaan Qureshi
3d68ca4583
fix: inherited grammar generation
2024-02-10 18:25:35 -05:00
Amaan Qureshi
dcb34b25ec
fix: prettify xml output and add node position info
2024-02-08 18:09:10 -05:00
Amaan Qureshi
a969fc428c
chore: move dependencies into the workspace and inherit from there
2024-02-08 15:24:09 -05:00
Amaan Qureshi
7980669267
feat: support dot graph output on windows
2024-02-08 15:21:47 -05:00
Amaan Qureshi
214e27083a
feat(cli): upgrade to clap v4
2024-02-08 05:39:41 -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
767db31114
fix: remove redundant code
2024-02-07 07:13:03 -05:00
Amaan Qureshi
993ee75d8c
fix: don't add extraneous exports to the json and add missing rules to the schema
2024-02-07 07:10:51 -05:00
Daumantas Kavolis
08d211a546
feat: improve time reports
2024-02-07 03:19:02 -05:00
Amaan Qureshi
59be1edaa1
refactor: swap &Vec[T] with &[T] where appropriate
2024-02-07 02:50:31 -05:00
buckynbrocko
8b38ab67de
chore(cli): reword test diff legend
2024-02-07 01:33:06 -05:00
buckynbrocko
a4a7edc5af
feat(cli): add include/exclude options to the test subcommand
2024-02-07 01:04:54 -05:00
dundargoc
c8bd6705cf
chore: clippy
2024-02-06 23:34:14 -05:00
Amaan Qureshi
f601c87091
fix: do not skip over spaces that are surrounded by quotes
2024-02-06 19:00:43 -05:00
Amaan Qureshi
a0ddae9d1a
Merge pull request #2724 from plugwash/master
...
cli - update to regex-syntax 0.8
2024-02-06 19:00:11 -05:00
Max Brunsfeld
f4788b49c0
Merge branch 'master' into wasm-stdlib
2024-02-05 11:55:58 -08:00
Max Brunsfeld
ad9091afe0
Fix wasm build errors due to builtin symbols
2024-02-05 10:19:34 -08:00
root
b7d48b48fd
chore(cli): update to regex-syntax 0.8
...
regex-syntax has restructured the Ast enum a bit, rather than having a Class
member it now has seperate members for different types of Class.
2024-02-05 01:22:09 -05:00
Amaan Qureshi
000c2f4dec
feat: allow the grammar to log to stdout
2024-02-05 00:46:34 -05: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
1d8975319c
Merge pull request #2840 from tree-sitter/language-reference-count
...
Introduce APIs for managing the lifetimes of languages, allow WASM languages to be deleted
2024-01-30 10:24:37 -08:00
Max Brunsfeld
d351f81b4a
Release stale instances from wasm store when languages are dropped
2024-01-29 10:17:49 -08:00
Steven Kalt
d35efd4608
feat(cli): support building WASM via podman
...
Previously, `tree-sitter build-wasm` had the ability to build WASM
by using docker to pull in an image with a complete emscripten toolchain.
This commit adds the ability to use podman to do the same thing.
Using podman requires two notable changes:
1. Using the fully-qualified image name. Docker defaults to prepending
`docker.io` to the image name, but podman does not.
2. Podman will mount the `/src/` volume as belonging to root unless
`--userns=keep-id` is passed. I think podman's different
volume-ownership is related to podman's daemonless execution and
`--uidmap` functionality, but I'm not 100% sure.
To test, I ran
```sh
script/fetch-fixtures
script/generate-fixtures
script/generate-fixtures-wasm # <- the important one!
```
which worked as well as the docker version.
2024-01-29 00:50:32 -05: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
Segev Finer
4a42c6d5f1
Make Node.js language bindings context aware
...
They don't have any dynamic global data, so all it takes is just declaring them as such
2023-12-28 16:39:19 +02: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
Andrew Hlynskyi
d56b51a11d
Revert "Alt #2454 "
2023-11-29 11:20:05 +02: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