turbo-editors/turbo-corepublic Fork 0
28d59854361aeda8541d853093e732126f3d7bff
Commits
Clone
git clone https://git.rickub.com/turbo-editors/turbo-core.git
git clone ssh://git@rickub.com/turbo-editors/turbo-core.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

🛟 Updated. 28d5985 · on 28d59854361aeda8541d853093e732126f3d7bff · k33g · 17h ago
2026-09-09-fourth-editor.md · 23 lines · 2.2 KBmarkdown
Blame HistoryOpen raw

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.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 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.