From 39d16809db78458deef1ea4cde244d9e4f31aa83 Mon Sep 17 00:00:00 2001 From: Luni-4 Date: Mon, 8 Feb 2021 10:06:22 +0100 Subject: [PATCH 1/6] Remove tree-sitter-java submodule --- .gitmodules | 3 --- tree-sitter-java | 1 - 2 files changed, 4 deletions(-) delete mode 160000 tree-sitter-java diff --git a/.gitmodules b/.gitmodules index a9baed2fd..1460a128e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,9 +10,6 @@ [submodule "tree-sitter-typescript"] path = tree-sitter-typescript url = https://github.com/tree-sitter/tree-sitter-typescript/ -[submodule "tree-sitter-java"] - path = tree-sitter-java - url = https://github.com/tree-sitter/tree-sitter-java/ [submodule "tree-sitter-cpp"] path = tree-sitter-cpp url = https://github.com/tree-sitter/tree-sitter-cpp.git diff --git a/tree-sitter-java b/tree-sitter-java deleted file mode 160000 index f7b62ac33..000000000 --- a/tree-sitter-java +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f7b62ac33d63bea56ce202ace107aaa4285e50af From d0851cd9fd9eaecd622fe8907891f301b8303e0f Mon Sep 17 00:00:00 2001 From: Luni-4 Date: Mon, 8 Feb 2021 10:07:23 +0100 Subject: [PATCH 2/6] Add tree-sitter-java crate --- Cargo.lock | 11 +++++++++++ Cargo.toml | 2 ++ src/macros.rs | 22 ++++++++++++++++++---- 3 files changed, 31 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 66bf87d76..baede8b31 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1640,6 +1640,7 @@ dependencies = [ "serde", "termcolor", "tree-sitter", + "tree-sitter-java", ] [[package]] @@ -2112,6 +2113,16 @@ dependencies = [ "regex", ] +[[package]] +name = "tree-sitter-java" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a1817218b66589235a1a234ada9669785095aeeb20597a2bf515d4dbf846d46" +dependencies = [ + "cc", + "tree-sitter", +] + [[package]] name = "trust-dns-proto" version = "0.19.5" diff --git a/Cargo.toml b/Cargo.toml index 46bf5f936..8d2317190 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -29,7 +29,9 @@ phf = { version = "^0.8", features = ["macros"] } regex = "^1.4" serde = { version = "^1.0", features = ["derive"] } termcolor = "^1.1" + tree-sitter = "^0.17" +tree-sitter-java = "0.16" [dev-dependencies] pretty_assertions = "^0.6" diff --git a/src/macros.rs b/src/macros.rs index 132d96931..610d6bdfc 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -30,6 +30,23 @@ macro_rules! mk_else_if { }; } +#[macro_use] +macro_rules! get_language { + (tree_sitter_java) => { + fn get_language() -> Language { + tree_sitter_java::language() + } + }; + ($name:ident) => { + fn get_language() -> Language { + extern "C" { + pub(crate) fn $name() -> Language; + } + unsafe { $name() } + } + }; +} + #[macro_use] macro_rules! mk_enum { ( $( $camel:ident, $description:expr ),* ) => { @@ -216,10 +233,7 @@ macro_rules! mk_code { LANG::$camel } - fn get_language() -> Language { - extern "C" { fn $name() -> Language; } - unsafe { $name() } - } + get_language!($name); fn get_lang_name() -> &'static str { stringify!($camel) From 31fbb027b84f8c683ff63509e4e214252c51a2f9 Mon Sep 17 00:00:00 2001 From: Luni-4 Date: Mon, 8 Feb 2021 11:30:23 +0100 Subject: [PATCH 3/6] enums: Remove a useless macro --- enums/src/macros.rs | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/enums/src/macros.rs b/enums/src/macros.rs index dc112e317..e44f4ac74 100644 --- a/enums/src/macros.rs +++ b/enums/src/macros.rs @@ -1,12 +1,3 @@ -#[macro_export] -macro_rules! mk_extern { - ( $( $name:ident ),* ) => { - $( - extern "C" { pub fn $name() -> Language; } - )* - }; -} - #[macro_export] macro_rules! mk_enum { ( $( $camel:ident ),* ) => { @@ -23,12 +14,13 @@ macro_rules! mk_enum { macro_rules! mk_get_language { ( $( ($camel:ident, $name:ident) ),* ) => { pub fn get_language(lang: &LANG) -> Language { - unsafe { match lang { $( - LANG::$camel => $name(), + LANG::$camel => { + extern "C" { fn $name() -> Language; } + unsafe { $name() } + }, )* - } } } }; @@ -50,7 +42,6 @@ macro_rules! mk_get_language_name { #[macro_export] macro_rules! mk_langs { ( $( ($camel:ident, $name:ident) ),* ) => { - mk_extern!($( $name ),*); mk_enum!($( $camel ),*); mk_get_language!($( ($camel, $name) ),*); mk_get_language_name!($( $camel ),*); From 0ea8c5787cfcbf1f7ac82f7a57df79576efc1646 Mon Sep 17 00:00:00 2001 From: Luni-4 Date: Mon, 8 Feb 2021 11:40:18 +0100 Subject: [PATCH 4/6] enums: Add tree-sitter-java crate --- enums/Cargo.toml | 1 + enums/src/macros.rs | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/enums/Cargo.toml b/enums/Cargo.toml index ba5497255..b74ae887f 100644 --- a/enums/Cargo.toml +++ b/enums/Cargo.toml @@ -17,3 +17,4 @@ phf_codegen = "^0.8" libc = "^0.2" tree-sitter = "^0.17" +tree-sitter-java = "0.16" diff --git a/enums/src/macros.rs b/enums/src/macros.rs index e44f4ac74..b2939f098 100644 --- a/enums/src/macros.rs +++ b/enums/src/macros.rs @@ -14,6 +14,9 @@ macro_rules! mk_enum { macro_rules! mk_get_language { ( $( ($camel:ident, $name:ident) ),* ) => { pub fn get_language(lang: &LANG) -> Language { + if let LANG::Java = lang { + tree_sitter_java::language() + } else { match lang { $( LANG::$camel => { @@ -21,6 +24,7 @@ macro_rules! mk_get_language { unsafe { $name() } }, )* + } } } }; From f2f5164c7b8bd3ba22362e012f42f89a19faeeb2 Mon Sep 17 00:00:00 2001 From: Luni-4 Date: Mon, 8 Feb 2021 11:40:28 +0100 Subject: [PATCH 5/6] enums: Update Cargo.lock --- enums/Cargo.lock | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/enums/Cargo.lock b/enums/Cargo.lock index e7c1b955a..9b6ba10b1 100644 --- a/enums/Cargo.lock +++ b/enums/Cargo.lock @@ -146,6 +146,7 @@ dependencies = [ "libc", "phf_codegen", "tree-sitter", + "tree-sitter-java", ] [[package]] @@ -419,6 +420,16 @@ dependencies = [ "regex", ] +[[package]] +name = "tree-sitter-java" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a1817218b66589235a1a234ada9669785095aeeb20597a2bf515d4dbf846d46" +dependencies = [ + "cc", + "tree-sitter", +] + [[package]] name = "unicode-width" version = "0.1.8" From 78ad1c999ccd82c176580ac134935428a4b988aa Mon Sep 17 00:00:00 2001 From: Luni-4 Date: Mon, 8 Feb 2021 14:25:30 +0100 Subject: [PATCH 6/6] Update tree-sitter-java to consider patch updates --- Cargo.toml | 2 +- enums/Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 8d2317190..cb7558bc9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,7 +31,7 @@ serde = { version = "^1.0", features = ["derive"] } termcolor = "^1.1" tree-sitter = "^0.17" -tree-sitter-java = "0.16" +tree-sitter-java = "^0.16" [dev-dependencies] pretty_assertions = "^0.6" diff --git a/enums/Cargo.toml b/enums/Cargo.toml index b74ae887f..dc339f26a 100644 --- a/enums/Cargo.toml +++ b/enums/Cargo.toml @@ -17,4 +17,4 @@ phf_codegen = "^0.8" libc = "^0.2" tree-sitter = "^0.17" -tree-sitter-java = "0.16" +tree-sitter-java = "^0.16"