Max Brunsfeld
b47c170c75
Query: fix bugs and add tests for top-level and nested repetitions
2020-05-08 12:10:01 -07:00
Max Brunsfeld
3ad71625dd
Fix query bugs, expand and clean up query tests
2020-05-07 14:22:15 -07:00
Max Brunsfeld
3456a21f0d
Start work on restructuring query implementation to deal w/ optionals and repeats better
2020-05-07 12:41:25 -07:00
Riccardo Schirone
780e9cecc9
Do not use multiple unnamed structs inside of unions
2020-04-29 20:42:45 +02:00
Max Brunsfeld
35f82ce301
Fix incorrect parent values after call to child_by_field_name
...
Refs tree-sitter/node-tree-sitter#61
Refs tree-sitter/tree-sitter-javascript#127
2020-04-03 11:21:51 -07:00
Max Brunsfeld
8eac81b8df
Merge branch 'master' into tags
2020-03-25 12:49:15 -07:00
Max Brunsfeld
783c087aec
tags: Handle cancellation
2020-03-25 11:26:52 -07:00
Max Brunsfeld
59c457c5cf
tags: Fix typo in tag ranges
2020-03-20 11:35:27 -07:00
Max Brunsfeld
a003e5f6bd
generate: Avoid duplicate string tokens in unique symbol map
2020-03-20 11:35:11 -07:00
Max Brunsfeld
ae1c51051a
Fix tag order in JS tags test
2020-03-20 11:34:33 -07:00
Max Brunsfeld
aedab72afa
tags: Start work on handling local variables for ruby support
2020-03-20 10:13:03 -07:00
Max Brunsfeld
651fa38c93
Add unit test for tagging via C API. Fix docs handling
2020-03-18 10:40:15 -07:00
Max Brunsfeld
591e066226
tags: Make cli output more human readable
2020-03-17 12:05:09 -07:00
Max Brunsfeld
94a60b8e13
tags: Start adapting Tag struct for use in C API
2020-03-17 11:19:30 -07:00
Max Brunsfeld
d0325579ad
Use Arc to avoid use-after-free in threaded cancellation unit test
...
Fixes #579
2020-03-16 14:46:05 -07:00
Max Brunsfeld
94bbf14d0e
tags: Add test where no comments are adjacent to definition
2020-03-16 14:28:58 -07:00
Max Brunsfeld
65f2874b9e
query: Optimize handling of patterns with a wildcard at the root
...
Avoid adding and removing states for these patterns on every node in the tree
by just skipping the wildcard step of the matching process
2020-03-16 14:02:31 -07:00
Max Brunsfeld
1b3a67834b
cli: Fix loading of tags query
2020-03-13 16:13:31 -07:00
Max Brunsfeld
b5483c67ab
query: allow repetition operator to be used on non-terminal nodes
2020-03-13 16:12:39 -07:00
Max Brunsfeld
b5f2ed83fe
tags: Implement select-adjacent! predicate
2020-03-13 13:02:56 -07:00
Max Brunsfeld
0457736766
rust: add handling of arbitrary predicate operators
2020-03-13 13:02:34 -07:00
Max Brunsfeld
6e2df06dc2
Start proving out tags support for JavaScript
2020-03-12 16:33:52 -07:00
Max Brunsfeld
6f636a0357
query: Add postfix '+' operator for token repetition
...
Co-Authored-By: Patrick Thomson <patrickt@users.noreply.github.com>
2020-03-12 15:10:58 -07:00
Max Brunsfeld
05c1d44e80
Merge branch 'master' into tags
2020-03-11 13:15:26 -07:00
Max Brunsfeld
e3aad995f6
query: Fix handling of patterns with wildcards at the root
2020-03-11 13:14:16 -07:00
Patrick Thomson
d798bd6bd9
Slice out the line associated with a tag.
2020-03-10 20:39:04 -04:00
Max Brunsfeld
4996cbe830
cli: Move more of the tags code from main into the tags module
2020-03-10 16:52:10 -07:00
Max Brunsfeld
0e02ead0de
Update tags test to reflect new handling of escapes in queries
2020-03-10 15:53:42 -07:00
Max Brunsfeld
4531130b44
Merge branch 'master' into tags
2020-03-10 15:50:27 -07:00
Max Brunsfeld
741eed01b7
query: Handle escape sequences and escaped quotes in string literals
2020-03-10 15:50:06 -07:00
Max Brunsfeld
fc4d5c3a33
🔥 Dead test code
2020-03-10 12:23:13 -07:00
Max Brunsfeld
17cc38678c
Get generate_tags with the new iterator API
2020-03-10 12:05:09 -07:00
Max Brunsfeld
0eb162c685
wip: converting generate_tags to return an iterator
2020-03-10 11:45:31 -07:00
Max Brunsfeld
157258d881
tags: Implement strip regex for docs processing
...
Co-Authored-By: Patrick Thomson <patrickt@users.noreply.github.com>
2020-03-10 10:43:23 -07:00
Max Brunsfeld
7f4828254f
Fix criteria for detecting when an aborted parse is resuming
2020-03-09 11:30:08 -07:00
Patrick Thomson
00dcc1eaa6
Need to use expression_statement here.
2020-03-06 17:48:55 -05:00
Max Brunsfeld
680a9e0531
wip
2020-03-06 13:24:03 -08:00
Max Brunsfeld
a3f0087b11
Start work on tagging unit test
...
Co-Authored-By: Patrick Thomson <patrickt@users.noreply.github.com>
2020-03-05 13:04:49 -08:00
Max Brunsfeld
feac368a30
Start work on new tree-sitter-tags crate
...
Co-Authored-By: Patrick Thomson <patrickt@users.noreply.github.com>
2020-03-04 14:27:31 -08:00
Mark Schmitz
b1c7768cc2
Output also HTML_FOOTER with highlight --html ( #550 )
...
* Output also HTML_FOOTER with highlight --html
* move html footer output after end of for loop, as only one closing tag
is needed
2020-03-02 15:04:15 -08:00
Max Brunsfeld
ee46218a73
Fix incremental parsing problem with non-terminal extras
...
Also add PHP grammar as a fixture to test against.
2020-03-02 14:17:12 -08:00
Max Brunsfeld
e259af6a4e
0.16.5
2020-03-02 12:41:22 -08:00
Max Brunsfeld
6cb8d24de2
Merge pull request #542 from SKalt/issue-524-document-supertypes-in-grammar-schema
...
feat(cli): documented optional supertypes string[] in grammar schema
2020-02-24 16:14:49 -08:00
Steven Kalt
d82ee739e9
Update cli/src/generate/grammar-schema.json
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@github.com>
2020-02-24 18:13:38 -05:00
Max Brunsfeld
709ddfebe9
docs: Add explanation of syntax highlighting configuration for CLI
2020-02-21 11:39:27 -08:00
Max Brunsfeld
360b188644
cli: Handle 'underline' styling when highlighting w/ HTML output
2020-02-20 09:35:46 -08:00
Max Brunsfeld
570b83e2b2
query: Add immediate child operator
2020-02-19 11:47:52 -08:00
Max Brunsfeld
950a89a525
query: Differentiate between wildcard '*' and named wildcard '(*)'
2020-02-19 09:42:29 -08:00
Alyssa Verkade
0e689657b7
Add a language linkage declaration to parsers
...
Previously, in order to compile a `tree-sitter` grammar that contained
c++ source in the parser (ie the `scanner.cc` file), you would have to
compile the `parser.c` file separately from the c++ files. For example,
in rust this would result in a `build.rs` close to the following:
```
extern crate cc;
fn main() {
let dir: PathBuf = ["tree-sitter-ruby", "src"].iter().collect();
cc::Build::new()
.include(&dir)
.cpp(true)
.file(dir.join("scanner.cc"))
// NOTE: must have a name that differs from the c static lib
.compile("tree-sitter-ruby-scanner");
cc::Build::new()
.include(&dir)
.file(dir.join("parser.c"))
// NOTE: must have a name that differs from the c++ static lib
.compile("tree-sitter-ruby-parser");
}
```
This was necessary at the time for the following grammars: `ruby`,
`php`, `python`, `embedded-template`, `html`, `cpp`, `ocaml`,
`bash`, `agda`, and `haskell`.
To solve this, we specify an `extern "C"` language linkage declaration
to the functions that must be linked against to compile a parser with the
scanner, making parsers linkable against c++ source.
On all major compilers (gcc, clang, and msvc) this should be the only
change needed due to the combination of clang and gcc both supporting
designated initialization for years and msvc 2019 adopting designated
initializers as a part of the C++20 conformance push.
Subsequently, for rust projects, the necessary `build.rs` would become
(which also brings these parsers into sync with the current docs):
```
extern crate cc;
fn main() {
let dir: PathBuf = ["tree-sitter-ruby", "src"].iter().collect();
cc::Build::new()
.include(&dir)
.cpp(true)
.file(dir.join("scanner.cc"))
.file(dir.join("parser.c"))
.compile("tree-sitter-ruby");
}
```
2020-02-18 19:46:59 -08:00
Steven Kalt
c5ca259d09
feat(cli): documented optional supertypes Array<string> in grammar-schema.json
2020-02-15 11:23:14 -05:00