Handoff — 2026-09-01 — Turbo Go on turbo-core
State
Turbo Go is now a thin editor on top of turbo-core: main.go plus internal/golang, about four hundred lines. The other fourteen packages moved into the library.
The full existing test suite passes, unchanged in what it asserts. Quality gate PASS at 0/0/0. The binary builds, reports its version through the library's version package, and lists eight themes.
Nothing about the editor's behaviour changed — menus, keys, themes, file formats and environment variables are what they were.
Everything is uncommitted, on branch refactoring.
In flight
Nothing.
Next steps
- Commit turbo-core first, then this repository. Turbo Go does not build without the library beside it.
- Once turbo-core is tagged, drop the
replacedirective fromgo.modand runmake testbefore pushing. See turbo-core'sdocs/en/how-to/release-the-library.md. - Ticket 0001 in
turbo-editors/.ticketsis the user's to close. - Nobody has run this build on a real terminal for a whole working session since the migration. The pty runs here cover rendering and colouring; they do not cover an hour of editing.
Open questions / blockers
None.
Watch out for
- A decision that suits only Go now has to go in the profile or be argued for in the library. That is the cost of the split, and it is the thing that keeps the two editors the same editor. Resist adding a Go-shaped special case to turbo-core.
internal/golang/scan.gois the one scanner that works in byte offsets. It usessyntax.LineIndex, notsyntax.LineScanner, becausego/scannergives byte ranges. Do not "make it consistent" with the others.- The templates in
internal/golang/templates.goare tested here, not in the library. turbo-core tests thatCreatewrites the profile's template; what is in it —gofmt -l -w .,go vet ./..., Run being the one tool in a terminal — is this repository's test, because it is about Go. TURBO_GO_THEME_DIRandTURBO_GO_SNIPPET_DIRare derived from the slug. They are unchanged on purpose. Changing the slug, or howprofile.envPrefixworks, breaks somebody's configuration silently.- The release scripts stamp
turbo-core/version, not a local package.-ldflags -Xcan set a variable in a dependency, which is what makes this work; the path is in theMakefileonce and read from there by03-build-releases.sh. - The two real-gopls tests live in
internal/golangnow. They skip themselves under-shortand when gopls is missing, which is most sandboxes — so a green run does not mean they ran.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
|