diff --git a/settings.gradle b/settings.gradle index f8365333..d87ead13 100644 --- a/settings.gradle +++ b/settings.gradle @@ -25,4 +25,5 @@ include 'tree-sitter-typescript' include 'tree-sitter-tsx' include 'tree-sitter-verilog' include 'tree-sitter-demo' -include 'tree-sitter-tests' \ No newline at end of file +include 'tree-sitter-tests' +include 'tree-sitter-kotlin' diff --git a/tree-sitter-kotlin/build.gradle b/tree-sitter-kotlin/build.gradle new file mode 100644 index 00000000..7617911d --- /dev/null +++ b/tree-sitter-kotlin/build.gradle @@ -0,0 +1,4 @@ + +tasks.named('downloadSource') { + url = "https://github.com/fwcd/tree-sitter-kotlin/archive/refs/tags/0.3.8.zip" +} diff --git a/tree-sitter-kotlin/gradle.properties b/tree-sitter-kotlin/gradle.properties new file mode 100644 index 00000000..d012594f --- /dev/null +++ b/tree-sitter-kotlin/gradle.properties @@ -0,0 +1 @@ +libVersion=0.3.8 \ No newline at end of file diff --git a/tree-sitter-kotlin/src/main/c/org_treesitter_TreeSitterKotlin.c b/tree-sitter-kotlin/src/main/c/org_treesitter_TreeSitterKotlin.c new file mode 100644 index 00000000..143afefb --- /dev/null +++ b/tree-sitter-kotlin/src/main/c/org_treesitter_TreeSitterKotlin.c @@ -0,0 +1,12 @@ + +#include +void *tree_sitter_kotlin(); +/* + * Class: org_treesitter_TreeSitterKotlin + * Method: tree_sitter_kotlin + * Signature: ()J + */ +JNIEXPORT jlong JNICALL Java_org_treesitter_TreeSitterKotlin_tree_1sitter_1kotlin + (JNIEnv *env, jclass clz){ + return (jlong) tree_sitter_kotlin(); +} diff --git a/tree-sitter-kotlin/src/main/java/org/treesitter/TreeSitterKotlin.java b/tree-sitter-kotlin/src/main/java/org/treesitter/TreeSitterKotlin.java new file mode 100644 index 00000000..df35e2f7 --- /dev/null +++ b/tree-sitter-kotlin/src/main/java/org/treesitter/TreeSitterKotlin.java @@ -0,0 +1,25 @@ + +package org.treesitter; + +import org.treesitter.utils.NativeUtils; + +public class TreeSitterKotlin extends TSLanguage { + + static { + NativeUtils.loadLib("lib/tree-sitter-kotlin"); + } + private native static long tree_sitter_kotlin(); + + public TreeSitterKotlin() { + super(tree_sitter_kotlin()); + } + + private TreeSitterKotlin(long ptr) { + super(ptr); + } + + @Override + public TSLanguage copy() { + return new TreeSitterKotlin(copyPtr()); + } +} diff --git a/tree-sitter-kotlin/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-kotlin.so b/tree-sitter-kotlin/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-kotlin.so new file mode 100755 index 00000000..220b9a4b Binary files /dev/null and b/tree-sitter-kotlin/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-kotlin.so differ diff --git a/tree-sitter-kotlin/src/main/resources/lib/aarch64-macos-tree-sitter-kotlin.dylib b/tree-sitter-kotlin/src/main/resources/lib/aarch64-macos-tree-sitter-kotlin.dylib new file mode 100755 index 00000000..c088f209 Binary files /dev/null and b/tree-sitter-kotlin/src/main/resources/lib/aarch64-macos-tree-sitter-kotlin.dylib differ diff --git a/tree-sitter-kotlin/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-kotlin.so b/tree-sitter-kotlin/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-kotlin.so new file mode 100755 index 00000000..dceaff5c Binary files /dev/null and b/tree-sitter-kotlin/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-kotlin.so differ diff --git a/tree-sitter-kotlin/src/main/resources/lib/x86_64-macos-tree-sitter-kotlin.dylib b/tree-sitter-kotlin/src/main/resources/lib/x86_64-macos-tree-sitter-kotlin.dylib new file mode 100755 index 00000000..ac067247 Binary files /dev/null and b/tree-sitter-kotlin/src/main/resources/lib/x86_64-macos-tree-sitter-kotlin.dylib differ diff --git a/tree-sitter-kotlin/src/main/resources/lib/x86_64-windows-tree-sitter-kotlin.dll b/tree-sitter-kotlin/src/main/resources/lib/x86_64-windows-tree-sitter-kotlin.dll new file mode 100755 index 00000000..f7fff0db Binary files /dev/null and b/tree-sitter-kotlin/src/main/resources/lib/x86_64-windows-tree-sitter-kotlin.dll differ diff --git a/tree-sitter-kotlin/src/test/java/org/treesitter/TreeSitterKotlinTest.java b/tree-sitter-kotlin/src/test/java/org/treesitter/TreeSitterKotlinTest.java new file mode 100644 index 00000000..8409f2ea --- /dev/null +++ b/tree-sitter-kotlin/src/test/java/org/treesitter/TreeSitterKotlinTest.java @@ -0,0 +1,14 @@ + +package org.treesitter; + +import org.junit.jupiter.api.Test; +import org.treesitter.tests.CorpusTest; + +import java.io.IOException; + +class TreeSitterKotlinTest { + @Test + void corpusTest() throws IOException { + CorpusTest.runAllTestsInDefaultFolder(new TreeSitterKotlin(), "kotlin"); + } +}