# Handoff — 2026-09-09 — the fourth editor, and two things it left for this library ## State turbo-moonbit exists, is green, and depends on `v0.4.2` from the module proxy with no active `replace`. Registering it here cost **five documentation edits and one package comment, and no code**. Working tree has those edits uncommitted. ## In flight Nothing. The edits are complete. ## Next steps 1. Commit the four-editor edits. 2. Decide on the two items below. Both are real, both help every editor, and neither was touched from turbo-moonbit because a library change belongs to this repository's own `/methodical-dev` cycle. ## Open questions / blockers - **Send `workspace/didChangeWatchedFiles`?** moon-lsp works a package's file list out once and never revisits it, so a `.mbt` file created after the server started is never diagnosed: File ▸ New, save as a `.mbt`, and the gutter stays blank until the editor restarts. Reproduced against the raw protocol with a hand-written client, independently of this library, so it is not a client bug — it is a notification this client does not send. `turbo-moonbit`'s `TestAFileCreatedAfterTheServerStartedIsNotDiagnosed` pins the current behaviour and will fail when it changes, which is the right way round. - **Give `syntax.attribute` its own colour in `turbo-classic`?** It is `{ fg = "yellow" }`, and so is `syntax.identifier`. The other seven themes distinguish them. The consequence is that Turbo MoonBit's labelled arguments (`name~`) and attributes (`#deprecated(…)`) are indistinguishable from ordinary names in the default theme, and Turbo Rust's `#[derive(Debug)]` equally so. The fifth theme rule — "two syntax classes a reader meets side by side must not be drawn identically" — is the one no measurement finds, and this is an instance of it. ## Watch out for - The **sweep for hardcoded language names** was run over the whole library and came back clean. If it is run again, expect about twenty hits and read all of them: they are verbs (`"Go to line"`), doc-comment examples of the seam, import paths, and `"written in Go."`, which is true of every editor here. A sweep that flags twenty lines and explains none gets skipped the next time.