From 2e9d43c849c3c3af21e2c8d2ab8799cc46a333fa Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 2 Sep 2024 14:56:12 +0200 Subject: [PATCH] Use `tree-sitter` 0.23.0 --- Cargo.toml | 4 ++-- bindings/go/binding_test.go | 4 ++-- bindings/go/go.mod | 5 ----- bindings/python/tree_sitter_ql/binding.c | 4 ++-- bindings/rust/lib.rs | 27 ++++++++++++------------ package.json | 12 +++++------ src/tree_sitter/parser.h | 1 + 7 files changed, 25 insertions(+), 32 deletions(-) delete mode 100644 bindings/go/go.mod diff --git a/Cargo.toml b/Cargo.toml index 45e7fca..4be6330 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "tree-sitter-ql" description = "ql grammar for the tree-sitter parsing library" -version = "0.22.5" +version = "0.23.0" keywords = ["incremental", "parsing", "ql"] categories = ["parsing", "text-editors"] repository = "https://github.com/tree-sitter/tree-sitter-ql" @@ -21,7 +21,7 @@ include = [ path = "bindings/rust/lib.rs" [dependencies] -tree-sitter = "0.22.5" +tree-sitter-language = "0.1.0" [build-dependencies] cc = "1.0" diff --git a/bindings/go/binding_test.go b/bindings/go/binding_test.go index ab20c09..ac49fc3 100644 --- a/bindings/go/binding_test.go +++ b/bindings/go/binding_test.go @@ -3,8 +3,8 @@ package tree_sitter_ql_test import ( "testing" - tree_sitter "github.com/smacker/go-tree-sitter" - "github.com/tree-sitter/tree-sitter-ql" + tree_sitter "github.com/tree-sitter/go-tree-sitter" + tree_sitter_ql "github.com/tree-sitter/tree-sitter-ql/bindings/go" ) func TestCanLoadGrammar(t *testing.T) { diff --git a/bindings/go/go.mod b/bindings/go/go.mod deleted file mode 100644 index 0943040..0000000 --- a/bindings/go/go.mod +++ /dev/null @@ -1,5 +0,0 @@ -module github.com/tree-sitter/tree-sitter-ql - -go 1.22 - -require github.com/smacker/go-tree-sitter v0.0.0-20230720070738-0d0a9f78d8f8 diff --git a/bindings/python/tree_sitter_ql/binding.c b/bindings/python/tree_sitter_ql/binding.c index 3c5e3ff..fb81dc2 100644 --- a/bindings/python/tree_sitter_ql/binding.c +++ b/bindings/python/tree_sitter_ql/binding.c @@ -4,8 +4,8 @@ typedef struct TSLanguage TSLanguage; TSLanguage *tree_sitter_ql(void); -static PyObject* _binding_language(PyObject *self, PyObject *args) { - return PyLong_FromVoidPtr(tree_sitter_ql()); +static PyObject* _binding_language(PyObject *Py_UNUSED(self), PyObject *Py_UNUSED(args)) { + return PyCapsule_New(tree_sitter_ql(), "tree_sitter.Language", NULL); } static PyMethodDef methods[] = { diff --git a/bindings/rust/lib.rs b/bindings/rust/lib.rs index acd6abb..3972677 100644 --- a/bindings/rust/lib.rs +++ b/bindings/rust/lib.rs @@ -7,7 +7,10 @@ //! let code = r#" //! "#; //! let mut parser = tree_sitter::Parser::new(); -//! parser.set_language(&tree_sitter_ql::language()).expect("Error loading Ql grammar"); +//! let language = tree_sitter_ql::LANGUAGE; +//! parser +//! .set_language(&language.into()) +//! .expect("Error loading Ql parser"); //! let tree = parser.parse(code, None).unwrap(); //! assert!(!tree.root_node().has_error()); //! ``` @@ -17,30 +20,26 @@ //! [Parser]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Parser.html //! [tree-sitter]: https://tree-sitter.github.io/ -use tree_sitter::Language; +use tree_sitter_language::LanguageFn; extern "C" { - fn tree_sitter_ql() -> Language; + fn tree_sitter_ql() -> *const (); } -/// Get the tree-sitter [Language][] for this grammar. -/// -/// [Language]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Language.html -pub fn language() -> Language { - unsafe { tree_sitter_ql() } -} +/// The tree-sitter [`LanguageFn`] for this grammar. +pub const LANGUAGE: LanguageFn = unsafe { LanguageFn::from_raw(tree_sitter_ql) }; /// The content of the [`node-types.json`][] file for this grammar. /// /// [`node-types.json`]: https://tree-sitter.github.io/tree-sitter/using-parsers#static-node-types pub const NODE_TYPES: &str = include_str!("../../src/node-types.json"); -// Uncomment these to include any queries that this grammar contains +// NOTE: uncomment these to include any queries that this grammar contains: -pub const HIGHLIGHTS_QUERY: &str = include_str!("../../queries/highlights.scm"); +// pub const HIGHLIGHTS_QUERY: &str = include_str!("../../queries/highlights.scm"); // pub const INJECTIONS_QUERY: &str = include_str!("../../queries/injections.scm"); // pub const LOCALS_QUERY: &str = include_str!("../../queries/locals.scm"); -pub const TAGS_QUERY: &str = include_str!("../../queries/tags.scm"); +// pub const TAGS_QUERY: &str = include_str!("../../queries/tags.scm"); #[cfg(test)] mod tests { @@ -48,7 +47,7 @@ mod tests { fn test_can_load_grammar() { let mut parser = tree_sitter::Parser::new(); parser - .set_language(&super::language()) - .expect("Error loading Ql grammar"); + .set_language(&super::LANGUAGE.into()) + .expect("Error loading Ql parser"); } } diff --git a/package.json b/package.json index a2d078c..6afef81 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tree-sitter-ql", - "version": "0.22.5", + "version": "0.23.0", "description": "tree-sitter grammar for Semmle QL", "keywords": [ "tree-sitter", @@ -21,16 +21,14 @@ "author": "Sam Lanning ", "license": "MIT", "devDependencies": { - "tree-sitter-cli": "^0.22.5", + "tree-sitter-cli": "^0.23.0", "prebuildify": "^6.0.0" }, "scripts": { - "tree-sitter": "tree-sitter", - "generate": "tree-sitter generate", - "test": "tree-sitter test", - "build": "tree-sitter generate && node-gyp build", "install": "node-gyp-build", - "prebuildify": "prebuildify --napi --strip" + "prestart": "tree-sitter build --wasm", + "start": "tree-sitter playground", + "test": "node --test bindings/node/*_test.js" }, "tree-sitter": [ { diff --git a/src/tree_sitter/parser.h b/src/tree_sitter/parser.h index 17f0e94..799f599 100644 --- a/src/tree_sitter/parser.h +++ b/src/tree_sitter/parser.h @@ -47,6 +47,7 @@ struct TSLexer { uint32_t (*get_column)(TSLexer *); bool (*is_at_included_range_start)(const TSLexer *); bool (*eof)(const TSLexer *); + void (*log)(const TSLexer *, const char *, ...); }; typedef enum {