# tree-sitter-kotlin **Repository Path**: mirrors_sourcegraph/tree-sitter-kotlin ## Basic Information - **Project Name**: tree-sitter-kotlin - **Description**: Kotlin grammar for Tree-sitter - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-02-16 - **Last Updated**: 2025-12-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## 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` It is also helpful to run the parser on a real Kotlin project's source files. ```shell ./node_modules/.bin/tree-sitter parse "/path/to/some/project/**/*.kt" --quiet --stat ``` ## 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