Handoff — 2026-09-01 — Turbo Rust, first build
State
The editor exists and works. Whole suite green, quality gate PASS at 0/0/0 with complexity 98, binary builds and runs, and completion has been driven against a real rust-analyzer.
Documentation is 33 pages × EN + FR, with a drawio diagram generated from go list.
Everything is uncommitted, on main.
In flight
Nothing.
Next steps
- Commit turbo-core first, then this repository. Turbo Rust does not build without the library beside it.
- Once turbo-core is tagged, drop the
replacedirective fromgo.modand runmake test. - Use it for an afternoon. Nobody has. Everything here is verified by tests and scripted pty runs; the first hour of real editing will find something.
- Point the scanner at a large real crate. It has met one demo file and a broad sweep in a test.
- Ticket 0001 in
turbo-editors/.ticketsis the user's to close.
Open questions / blockers
None.
Watch out for
- rustup's shim is not rust-analyzer.
~/.cargo/bin/rust-analyzerexists on every machine that has rustup and fails withUnknown binary 'rust-analyzer' in official toolchainonly when run. Anything that checks for the server must execute it, not stat it — the end-to-end test lost thirty seconds to this before it was understood. - rust-analyzer answers an empty list until it has loaded the workspace, and says so with a
$/progressnotification this client does not read. The end-to-end test asks again on a loop for up to ninety seconds. Do not "simplify" that into a single request. - Two of the scanner's dispatch cases must come before the generic ones.
:is an operator rune and.is a punctuation rune, so::and..are claimed explicitly first. Moving them down the switch silently changes their colour. - A lifetime must be emitted as one span. It was two — the name, then the quote before it — and the editor draws spans in order and assumes they do not overlap, so it painted wrongly rather than failing.
TestSpansOnALineAreOrderedAndDoNotOverlapis what caught it. reference_test.goholds the documentation to the code. If you change what the scanner colours, that test tells you which sentence indocs/*/reference/languages.mdyou have just made false. TheMAX_SIZEcase documents a limitation on purpose — do not "fix" it without also fixing the sentence.- The templates are tested here, not in the library. turbo-core tests that
Createwrites the profile's template; that Build runscargo buildand that no template still saysturbo-gois this repository's test. 02-release.publish.shand04-release.upload-binaries.shhave never been run, here or in turbo-go. They publish to Codeberg.02also still has noset -e, and must not simply be given one: itsread -r -d '' DATAidiom always exits non-zero by design.
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 |
|