Skip to content

refactor(editor): move Csound host behavior into the Web IDE - #507

Draft
hlolli wants to merge 4 commits into
developfrom
feat/csound-language-split
Draft

hlolli wants to merge 4 commits into
developfrom
feat/csound-language-split

Conversation

@hlolli

@hlolli hlolli commented Sep 21, 2026

Copy link
Copy Markdown
Member

Summary

Move the IDE to @kunstmusik/codemirror-lang-csound and keep application behavior in the IDE.

  • Use the package's core csound({ mode }) interface, not /compat.
  • Own the rate/theme classes and bottom synopsis panel, using the package's semantic and hover data.
  • Return plain { from, to, kind } values from the IDE's context helper.
  • Test actual instrument, UDO, orchestra, and score evaluation, including score statements inside CSDs.

This branch starts from local develop and also includes its existing chore(deps): update CodeMirror and Csound browser commit.

Release gate

Depends on kunstmusik/codemirror-lang-csound#1.

Keep this PR in draft until upstream releases 1.0.3 or later. The manifest and lockfile require 1.0.3, which was not published when this branch was tested. The new lock entry has no registry URL or integrity hash yet; no preview archive or made-up release hash is committed.

After the release:

  1. Refresh the lockfile with the published package's registry metadata.
  2. Run npm ci and repeat the checks below against that release.
  3. Commit the lockfile update and mark this PR ready.

Validation

Tested against a locally packed upstream 1.0.3 build:

  • All 30 IDE tests pass.
  • Typecheck and lint pass.
  • Formatting checks pass for changed files.
  • Production build passes and emits a separate rich-help chunk.
  • Installed ESM/CommonJS exports and rich help loading pass.

Normal registry installation remains blocked until upstream publishes the required version.

Checked syntax adapters

The IDE now imports generated names and grammar-owned identifier groups from the upstream package's /syntax entry. Its highlighter no longer copies the identifier-node list. Synopsis and context-selection code use checked node constants, and keyword-node sets validate their entries at compile time.

Upstream adds negative type tests and CI checks for stale generated artifacts. All 30 IDE tests, typecheck, lint, formatting checks for changed files, and the production build pass against the updated local 1.0.3 preview. The release gate above still applies.

hlolli added 3 commits August 12, 2026 11:32
Use the upstream core language interface, keep rate styling and synopsis rendering in the IDE, and adapt syntax trees to plain evaluation ranges. Gate deployment on the upstream 1.0.3 release.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant