diff --git a/server/Cargo.toml b/server/Cargo.toml index 38ad709..8551b08 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -33,6 +33,10 @@ tree-sitter = "0.23.0" tree-sitter-rust = "0.23.0" tree-sitter-typescript = "0.23.0" tree-sitter-python = "0.23.0" +tree-sitter-java = "0.23.5" +tree-sitter-c = "0.24.2" +tree-sitter-cpp = "0.23.4" +tree-sitter-go = "0.25.0" [build-dependencies] chrono = "0.4.45" diff --git a/server/src/handlers/ast.rs b/server/src/handlers/ast.rs index d7773a7..8a4646d 100644 --- a/server/src/handlers/ast.rs +++ b/server/src/handlers/ast.rs @@ -40,6 +40,10 @@ impl McpTool for ReadFileSkeletonHandler { "rs" => tree_sitter_rust::LANGUAGE, "ts" | "tsx" | "js" | "jsx" => tree_sitter_typescript::LANGUAGE_TYPESCRIPT, "py" => tree_sitter_python::LANGUAGE, + "java" => tree_sitter_java::LANGUAGE, + "c" | "h" => tree_sitter_c::LANGUAGE, + "cpp" | "cc" | "cxx" | "hpp" | "hxx" => tree_sitter_cpp::LANGUAGE, + "go" => tree_sitter_go::LANGUAGE, _ => return Ok(code), }; @@ -140,6 +144,10 @@ impl McpTool for ReplaceAstNodeHandler { "rs" => tree_sitter_rust::LANGUAGE, "ts" | "tsx" | "js" | "jsx" => tree_sitter_typescript::LANGUAGE_TYPESCRIPT, "py" => tree_sitter_python::LANGUAGE, + "java" => tree_sitter_java::LANGUAGE, + "c" | "h" => tree_sitter_c::LANGUAGE, + "cpp" | "cc" | "cxx" | "hpp" | "hxx" => tree_sitter_cpp::LANGUAGE, + "go" => tree_sitter_go::LANGUAGE, _ => return Err(format!("Unsupported language for AST replacement: {}", ext)), };