<!-- Generated by scripts/generate_readme.py. DO NOT EDIT. -->
# Elixir
<div align="center" style="display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 20px 0;">
<!-- Language Bindings --> <a href="https://crates.io/crates/tree-sitter-language-pack">
<img src="https://img.shields.io/crates/v/tree-sitter-language-pack?label=Rust&color=007ec6" alt="Rust">
</a> <a href="https://pypi.org/project/tree-sitter-language-pack/">
<img src="https://img.shields.io/pypi/v/tree-sitter-language-pack?label=Python&color=007ec6" alt="Python">
</a> <a href="https://www.npmjs.com/package/@kreuzberg/tree-sitter-language-pack">
<img src="https://img.shields.io/npm/v/@kreuzberg/tree-sitter-language-pack?label=Node.js&color=007ec6" alt="Node">
</a> <a href="https://github.com/kreuzberg-dev/tree-sitter-language-pack/tree/main/packages/go/v1">
<img src="https://img.shields.io/github/v/tag/kreuzberg-dev/tree-sitter-language-pack?label=Go&color=007ec6" alt="Go">
</a> <a href="https://central.sonatype.com/artifact/dev.kreuzberg/tree-sitter-language-pack">
<img src="https://img.shields.io/maven-central/v/dev.kreuzberg/tree-sitter-language-pack?label=Java&color=007ec6" alt="Java">
</a> <a href="https://hex.pm/packages/tree_sitter_language_pack">
<img src="https://img.shields.io/hexpm/v/tree_sitter_language_pack?label=Elixir&color=007ec6" alt="Elixir">
</a> <a href="https://rubygems.org/gems/tree_sitter_language_pack">
<img src="https://img.shields.io/gem/v/tree_sitter_language_pack?label=Ruby&color=007ec6" alt="Ruby">
</a> <a href="https://www.npmjs.com/package/@kreuzberg/tree-sitter-language-pack-wasm">
<img src="https://img.shields.io/npm/v/@kreuzberg/tree-sitter-language-pack-wasm?label=WASM&color=007ec6" alt="Wasm">
</a> <a href="https://packagist.org/packages/kreuzberg/tree-sitter-language-pack">
<img src="https://img.shields.io/packagist/v/kreuzberg/tree-sitter-language-pack?label=PHP&color=007ec6" alt="Php">
</a> <a href="https://www.nuget.org/packages/TreeSitterLanguagePack">
<img src="https://img.shields.io/nuget/v/TreeSitterLanguagePack?label=C%23&color=007ec6" alt="Csharp">
</a>
<!-- Project Info -->
<a href="https://github.com/kreuzberg-dev/tree-sitter-language-pack/actions">
<img src="https://img.shields.io/github/actions/workflow/status/kreuzberg-dev/tree-sitter-language-pack/ci.yaml?branch=main&label=CI" alt="CI">
</a>
<a href="https://github.com/kreuzberg-dev/tree-sitter-language-pack/blob/main/LICENSE">
<img src="https://img.shields.io/badge/License-MIT%20%7C%20Apache--2.0-blue" alt="License">
</a>
</div>
<div align="center">
<a href="https://discord.gg/xt9WY3GnKR">
<img height="22" src="https://img.shields.io/badge/Discord-Join%20our%20community-7289da?logo=discord&logoColor=white" alt="Discord">
</a>
</div>
Elixir bindings for tree-sitter-language-pack using Rustler NIFs.
## Installation
```elixir
{:tree_sitter_language_pack, "~> 1.0"}
```
## Quick Start
```elixir
# List all available languages
TreeSitterLanguagePack.available_languages()
# Check if a language exists
TreeSitterLanguagePack.has_language("python")
# Get language pointer for tree-sitter interop
ptr = TreeSitterLanguagePack.get_language_ptr("python")
result = TreeSitterLanguagePack.process(source, ~s({"language":"elixir"}))
IO.inspect(result)
```
## API Reference
### Language Discovery
- `available_languages()` -- list all supported language names
- `has_language(name)` -- check if a language is available
- `language_count()` -- total number of supported languages
### Parsing
- `get_parser(name)` / `parse_string(source, language)` -- parse source code into a syntax tree
### Intelligence
- `process(source, config)` -- extract structured analysis (functions, classes, imports, comments, chunks) from source code
For detailed API documentation, see the [Elixir package](https://github.com/kreuzberg-dev/tree-sitter-language-pack/tree/main/crates/ts-pack-elixir).
## License
MIT OR Apache-2.0 -- see [LICENSE](https://github.com/kreuzberg-dev/tree-sitter-language-pack/blob/main/LICENSE) for details.
---
Part of [tree-sitter-language-pack](https://github.com/kreuzberg-dev/tree-sitter-language-pack) -- A comprehensive collection of tree-sitter language parsers with polyglot bindings.