def extract_tree_sitter_deps()

in playground/tree-sitter/build.py [0:0]


def extract_tree_sitter_deps(repo_root: Path) -> list[tuple[str, str, dict[str, str]]]:
    """Extract tree-sitter dependencies from cargo metadata."""
    cmd = ["cargo", "metadata", "--format-version", "1"]
    result = run_command(cmd, cwd=repo_root)
    metadata = json.loads(result.stdout)

    deps = []

    for package in metadata["packages"]:
        if not package["name"].startswith("tree-sitter-"):
            continue

        lang_name = package["name"].replace("tree-sitter-", "")
        if lang_name in _LANGUAGES:
            deps.append((lang_name, package["name"], package))

    return deps