| 🛟 Updated. 28d5985 k33g 17h ago | 1 | # turbo-core documentation |
| 2 | |
| 3 | turbo-core is the library every Turbo editor is built on. Turbo Go, Turbo Rust, Turbo Python, Turbo MoonBit, Turbo Golo and Turbo JS are the same editor with six different values of one type. |
| 4 | |
| 5 | This documentation follows [Diátaxis](https://diataxis.fr): four kinds of page, each answering one kind of question. |
| 6 | |
| 7 | ## [Tutorials](tutorials/) — learning by doing |
| 8 | |
| 9 | - [Build an editor](tutorials/build-an-editor.md) — a working terminal IDE for a language of your own, in about eighty lines. |
| 10 | |
| 11 | ## [How-to guides](how-to/) — doing a particular thing |
| 12 | |
| 13 | - [Add a language](how-to/add-a-language.md) — write a scanner and register it. |
| 14 | - [Talk to a language server](how-to/talk-to-a-language-server.md) — point the editor at gopls, rust-analyzer, or anything else that speaks LSP. |
| 15 | - [Write the starter files](how-to/write-the-starter-files.md) — the settings, snippets and tools templates your editor offers to create. |
| 16 | - [Run the tests](how-to/run-the-tests.md) — the one command, and what it covers. |
| 17 | - [Test without publishing](how-to/test-without-publishing.md) — run the editors against a turbo-core you have only changed locally. |
| 18 | - [Release the library](how-to/release-the-library.md) — tagging a version the editors can depend on. |
| 19 | |
| 20 | ## [Reference](reference/) — the exact details |
| 21 | |
| 22 | - [Profile](reference/profile.md) — every field of the type the editors differ by. |
| 23 | - [Packages](reference/packages.md) — what each package holds, and what it may depend on. |
| 24 | - [The syntax extension point](reference/syntax.md) — `Definition`, `Register`, `LineScanner`, `LineIndex`. |
| 25 | - [The app API](reference/app.md) — what a command may call on a running editor. |
| 26 | |
| 27 | ## [Explanation](explanation/) — why it is like this |
| 28 | |
| 29 | - [Architecture](explanation/architecture.md) — the shape of the library and the rule that keeps it that shape. |
| 30 | - [What belongs here](explanation/what-belongs-here.md) — the line between the library and an editor built on it, and how it was drawn. |
| 31 | |
| 32 | ## Where the editors are |
| 33 | |
| 📦 Turbo Core f3ade8d k33g 9h ago | 34 | - **Turbo Go** — `rickub.com/turbo-editors/turbo-go` |
| 35 | - **Turbo Rust** — `rickub.com/turbo-editors/turbo-rust` |
| 🛟 Updated. 28d5985 k33g 17h ago | 36 | |
| 37 | Both are thin: a command, a profile, and a scanner. If you are looking for how to *use* one of them, its own documentation is the place. |