Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fwcd/tree-sitter-kotlin
Kotlin grammar for Tree-sitter
https://github.com/fwcd/tree-sitter-kotlin
kotlin language-grammars parser tree-sitter
Last synced: 29 days ago
JSON representation
Kotlin grammar for Tree-sitter
- Host: GitHub
- URL: https://github.com/fwcd/tree-sitter-kotlin
- Owner: fwcd
- License: mit
- Created: 2019-07-28T19:51:27.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2024-09-05T20:03:27.000Z (2 months ago)
- Last Synced: 2024-09-27T10:41:16.384Z (about 1 month ago)
- Topics: kotlin, language-grammars, parser, tree-sitter
- Language: JavaScript
- Homepage: https://fwcd.github.io/tree-sitter-kotlin
- Size: 64.8 MB
- Stars: 124
- Watchers: 5
- Forks: 53
- Open Issues: 26
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Kotlin Grammar for Tree-sitter
[![Build](https://github.com/fwcd/tree-sitter-kotlin/actions/workflows/build.yml/badge.svg)](https://github.com/fwcd/tree-sitter-kotlin/actions/workflows/build.yml)
[![NPM](https://img.shields.io/npm/v/tree-sitter-kotlin)](https://www.npmjs.com/package/tree-sitter-kotlin)
[![crates.io](https://img.shields.io/crates/v/tree-sitter-kotlin)](https://crates.io/crates/tree-sitter-kotlin)[Kotlin](https://kotlinlang.org) language grammar for [Tree-sitter](http://tree-sitter.github.io/tree-sitter/). You can try it out directly [on the web](https://fwcd.github.io/tree-sitter-kotlin).
![Icon](Icon128.png)
The grammar is based on the [official language grammar](https://kotlinlang.org/docs/reference/grammar.html).
## Project Structure
| File | Description |
| ---- | ----------- |
| grammar.js | The Tree-sitter grammar |
| grammar-reference.js | A direct translation of the Kotlin language grammar that is, however, ambiguous to Tree-sitter |
| src | The generated parser |## Setup
>`npm install`
## Development
### Compilation
To (re-)compile the grammar, run:
>`npm run generate`
Note that the grammar is written completely in JavaScript (`grammar.js`), the other source files are generated by `tree-sitter`.
### Testing
To run the unit tests, run:
>`npm run test`
## WebAssembly
### Compilation
First make sure to have [Emscripten](https://emscripten.org/) installed. If you use Homebrew, you can `brew install emscripten`. Then run:
>`npm run build-wasm`
### Playground
After compiling the grammar to WebAssembly, you can invoke
>`npm run playground`
to launch an interactive editing environment that displays the parsed syntax tree on-the-fly in the browser. You can also view a deployed version of this playground [on the web](https://fwcd.github.io/tree-sitter-kotlin).
![Screenshot](playground-screenshot.png)
## Documentation
More documentation on how to create Tree-sitter grammars [can be found here](https://tree-sitter.github.io/tree-sitter/creating-parsers).
## See also
* [Kotlin Language Server](https://github.com/fwcd/kotlin-language-server) for code completion, diagnostics and more
* [Kotlin Debug Adapter](https://github.com/fwcd/kotlin-debug-adapter) for JVM debugging support