# Turbo Core v1.0.0

Turbo Core v1.0.0

The library the Turbo editors are built from. Built and checked with go1.26.1.

## Using it

    go get rickub.com/turbo-editors/turbo-core@v1.0.0

The module proxy serves this straight from the tag; the archive beside this file is the same source, for verifying against or for working without the proxy.

## What is in it

| Package | What it is |
|---|---|
| `acp` | Package acp is a client for the Agent Client Protocol: it starts a coding agent as a child process, holds a conversation with it, and keeps a model of that conversation a window can draw. |
| `app` | Everything the Edit and Search menus do: the clipboard, undo, and moving about the file. |
| `buffer` | Package buffer holds the text of one edited file, together with the cursor, the selection and the undo history. |
| `editor` | Package editor is the text-editing widget: a scrolling, colouring viewport onto one buffer. |
| `filetree` | Package filetree models a project's files as a tree that can be walked, expanded and collapsed, and shown in a window of the editor's own. |
| `jsonrpc` | Package jsonrpc is a JSON-RPC 2.0 connection over a framed byte stream. |
| `lsp` | Package lsp is a small Language Server Protocol client: enough of it to ask a language server for completions, hovers, definitions and diagnostics. |
| `profile` | Package profile holds everything that makes one editor built on turbo-core differ from another: what it is called, which language it is for, which language server it talks to, and the starter files it writes. |
| `projectfile` | Package projectfile writes the TOML files a project keeps in the editor's own directory — .turbo-go, .turbo-rust — namely its settings, its snippets and its tools. |
| `settings` | Package settings reads and writes a project's own editor settings, kept in the editor's own directory beside the code — .turbo-go for Turbo Go, .turbo-rust for Turbo Rust, whichever the profile names. |
| `snippets` | Package snippets reads the reusable pieces of text a project and a user keep in TOML files, and groups them for a menu to show. |
| `syntax` | Package syntax colours source code. |
| `terminal` | Package terminal is a terminal emulator: a screen a program can write to with escape sequences, a parser that turns a byte stream into changes to that screen, and a pseudo-terminal to run a shell in. |
| `theme` | Package theme turns TOML colour files into the tcell styles the editor draws with. |
| `tools` | Package tools reads the commands a project keeps in its editor directory's tools.toml — its formatter, its linter, its build, its tests — so that a menu can offer them. |
| `ui` | Package ui is the widget framework the editor is built from: a desktop holding movable windows, a menu bar with drop-down menus, modal dialogs, buttons, input lines and list boxes — the Turbo Vision furniture, drawn on tcell. |
| `version` | Package version tells the editor what build of itself it is. |

## Verifying the download

    sha256sum -c SHA256SUMS --ignore-missing     # shasum -a 256 -c on macOS
