Skip to content

Release v4.3.0

Choose a tag to compare

@AntonyBlakey AntonyBlakey released this 10 Sep 05:13
· 178 commits to main since this release

Modaliser v4.3.0

VSCode becomes a first-class citizen: a dedicated screen, three jump-label
panels over what is actually open, and a companion extension that answers what
lives inside a VSCode window.

VSCode screen

A screen that appears while VSCode is frontmost, carrying:

  • Projects — a jump-label panel over every open VSCode window, one row per
    project, reachable without a fuzzy search.
  • Terminals and Editors — jump-label panels listing what is open inside
    the frontmost window, each with its own alphabet.
  • Previous / next editor, focusing the editor first when it does not
    already have focus.
  • Open this window's live grove leaf — resolves the window to its worktree
    through VSCode's own state file, opens the task file and lands the explorer
    on it.

The machinery ships as the (modaliser apps vscode) and (modaliser tools grove)
libraries plus (modaliser jump-list); the keys, labels and alphabets are yours
and live in your own config.scm (ADR-0021). A complete, copyable screen ships
as examples/vscode.scm in the sys/ mirror —
~/.config/modaliser/sys/scheme/examples/vscode.scm.

The VSCode companion extension

The Terminals and Editors panels need a peer running inside VSCode, because
nothing outside VSCode carries that state. This release ships that extension
inside the app bundle (ADR-0028) — but Modaliser installs it only when you
ask and confirm, never on its own.

How to get it:

  1. Bind the install op in your config.scm — examples/vscode.scm ships it as
    the Install VSCode Companion row:

    (key "I" "Install VSCode Companion" code:install-companion!
         'hidden code:companion-installed?)
  2. Press it and confirm the dialog. It copies the bundled payload into
    ~/.vscode/extensions, removing any earlier copy of the same extension so
    VSCode does not load two.

  3. Restart VSCode. It scans ~/.vscode/extensions only at startup, so
    Modaliser cannot reach the companion until you do.

The row hides itself once the shipped version is installed, and reappears when
a later Modaliser upgrade carries a newer payload.

Two things worth knowing: this installs extension code, which VSCode then
activates in every window it opens; and uninstalling Modaliser does not
remove it — brew uninstall --zap modaliser, or deleting the directory by
hand, is what takes it away.

Everything else on the VSCode screen works without the companion. Terminals and
Editors simply come back empty.

Fixes

  • A Scheme error raised on a keypress inside a modal now tears down the modal
    state as well as deregistering the handler, so it no longer leaves an overlay
    standing on screen over a live state machine.