From ee9f3f8e61ea8fc59f21a934c1ac37e489142a34 Mon Sep 17 00:00:00 2001 From: LJ Date: Thu, 17 Jul 2025 09:10:06 -0700 Subject: [PATCH] feat(tree-sitter-kotlin): support Kotlin in `SplitRecursively` --- Cargo.lock | 11 +++++++++++ Cargo.toml | 3 +++ src/ops/functions/split_recursively.rs | 7 +++++++ 3 files changed, 21 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index 0dd5d8c7..f377bbd5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1369,6 +1369,7 @@ dependencies = [ "tree-sitter-java", "tree-sitter-javascript", "tree-sitter-json", + "tree-sitter-kotlin-ng", "tree-sitter-language", "tree-sitter-md", "tree-sitter-pascal", @@ -5724,6 +5725,16 @@ dependencies = [ "tree-sitter-language", ] +[[package]] +name = "tree-sitter-kotlin-ng" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e800ebbda938acfbf224f4d2c34947a31994b1295ee6e819b65226c7b51b4450" +dependencies = [ + "cc", + "tree-sitter-language", +] + [[package]] name = "tree-sitter-language" version = "0.1.5" diff --git a/Cargo.toml b/Cargo.toml index 93196a58..262ad3c5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -63,6 +63,7 @@ reqwest = { version = "0.12.15", default-features = false, features = [ "rustls-tls", ] } async-openai = "0.28.0" + tree-sitter = "0.25.3" tree-sitter-language = "0.1.5" # Per language tree-sitter parsers @@ -76,6 +77,8 @@ tree-sitter-html = "0.23.2" tree-sitter-java = "0.23.5" tree-sitter-javascript = "0.23.1" tree-sitter-json = "0.24.8" +# The other more popular crate tree-sitter-kotlin requires tree-sitter < 0.23 for now +tree-sitter-kotlin-ng = "1.1.0" tree-sitter-md = "0.3.2" tree-sitter-pascal = "0.10.0" tree-sitter-php = "0.23.11" diff --git a/src/ops/functions/split_recursively.rs b/src/ops/functions/split_recursively.rs index 2d5842a9..30236ab9 100644 --- a/src/ops/functions/split_recursively.rs +++ b/src/ops/functions/split_recursively.rs @@ -149,6 +149,13 @@ static TREE_SITTER_LANGUAGE_BY_LANG: LazyLock< [], ); add_treesitter_language(&mut map, "JSON", [".json"], tree_sitter_json::LANGUAGE, []); + add_treesitter_language( + &mut map, + "Kotlin", + [".kt", ".kts"], + tree_sitter_kotlin_ng::LANGUAGE, + [], + ); add_treesitter_language( &mut map, "Markdown",