Metadata-Version: 2.4
Name: tree-sitter-apache-avro-unofficial
Version: 0.1.2
Summary: Unofficial Apache Avro Language Parser for the IDL Language
Author-email: Victor Quiroz <git@victorhqc.com>
Maintainer-email: Laszlo Babartzy <laszlobabartzy@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/victorhqc/tree-sitter-apache-avro
Project-URL: Repository, https://github.com/Balara198/tree-sitter-apache-avro
Project-URL: Upstream, https://github.com/sebimarkgraf/tree-sitter-apache-avro
Keywords: incremental,parsing,tree-sitter,apache-avro
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Compilers
Classifier: Topic :: Text Processing :: Linguistic
Classifier: Typing :: Typed
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: core
Requires-Dist: tree-sitter~=0.24; extra == "core"
Dynamic: license-file

# Tree Sitter Apache Avro

> **Unofficial Python release.**
> This package (`tree-sitter-apache-avro-unofficial`) is an unofficial PyPI distribution of
> [sebimarkgraf/tree-sitter-apache-avro](https://github.com/sebimarkgraf/tree-sitter-apache-avro),
> which is itself a fork of [victorhqc/tree-sitter-apache-avro](https://github.com/victorhqc/tree-sitter-apache-avro).
> All grammar and parser logic belongs to the original authors.
> This release adds only the missing Python packaging.
> Maintained by [Laszlo Babartzy](https://github.com/Balara198).

## Introduction

This is an **unofficial** Apache Avro IDL (.avdl) based on the
official specs:

- [avdl](https://avro.apache.org/docs/1.11.1/idl-language/)

If you notice any bug or problem, please submit an issue or make a pull request.
Any contribution is welcomed and needed.

## Development

**Requirements:**

- Rust >= 1.90
- Node.js >= 24
- [Tree Sitter CLI](https://tree-sitter.github.io/tree-sitter/creating-parsers/1-getting-started.html)
- Docker (For the playground)

All the parsing logic is specified in `grammar.js` at the root level. To see if
the changes made to it are working, run the tests and compare the results.

```sh
npm test:parser
```

A playground is also available to test the parser (though it needs Docker to
run)

```sh
npm start
```

More information about how to write or use the tree parser can be found here:
[http://tree-sitter.github.io/tree-sitter/](http://tree-sitter.github.io/tree-sitter/)

To test the bindings you can also do the following

```sh
tree-sitter parse ./test/protocol.avdl
tree-sitter parse ./test/schema.avdl
```

To check for highlights, run the following

```sh
tree-sitter highlight --check ./test/schema.avdl
tree-sitter highlight --check ./test/protocol.avdl
```

Just make sure to include the local directory where you have this parser in the
local tree-sitter configuration. For example, if I have this path under
`Documents/Code/tree-sitter-apache-avro`  then the config should be

```json
{
  "parser-directories": [
    "/Users/my_user/github",
    "/Users/my_user/src",
    "/Users/my_user/source",
    "/Users/my_user/projects",
    "/Users/my_user/dev",
    "/Users/my_user/git",
    "/Users/my_user/Documents/Code"
  ],
}
```
