Files
vscode/extensions/markdown-language-features
Ross Wollman 251a47fbf2 markdown: Update markdown editor to 0.0.2-113 (#339892)
Bumps `@vscode/markdown-editor` from `0.0.2-107` to `0.0.2-113` and updates the lockfile.

**Copy button**

See top-left of the markdown editor in the codeblock. Now a _Copy_ button appears!

<img width="1552" height="1012" alt="Screenshot 2026-10-05 at 11 41 45 AM" src="https://github.com/user-attachments/assets/8124e1a8-8f2d-4d7f-a489-ce61adecf290" />


**Validation**
- `npm ci --registry=https://registry.npmjs.org --no-audit --no-fund` — passed.
- `npm run compile` (via `./scripts/code.sh`) — passed; manually checked in Code OSS.
- `npm --prefix extensions/markdown-language-features run test-markdown-editor-package-json` — 8 tests passed.
- Markdown editor build, manifest consistency check, and targeted type check — passed.

*🤖 Authored with GitHub Copilot on behalf of @rwoll.*
2026-10-06 18:53:29 +00:00
..
…
…

Language Features for Markdown files

Notice: This extension is bundled with Visual Studio Code. It can be disabled but not uninstalled.

Features

See Markdown in Visual Studio Code to learn about the features of this extension.

Rich editor RPC

The rich editor uses a private point-to-point @vscode/hubrpc connection between the extension host and webview. Shared runtime-validated interfaces in src/preview/markdownEditorProtocol.ts define document edits, commands, comments, diff markers, highlighting, rich links, and embedded-editor routing. No global Hub or capability service is required.

The interfaces use zod/mini to retain runtime validation and schema hashing without bundling Zod's full API and locale tables. HubRPC and Zod are development dependencies: the desktop extension, browser extension, and rich-editor builds bundle the runtime code they use.

Embedded web-editor support is loaded on demand when a fenced block is rendered and code-block providers are registered. Until loading completes, blocks use their normal rendering. Provider updates and completed loading refresh the blocks; the adapter still owns provider selection. Load failures are reported through the existing code-block diagnostics and can be retried by reopening the editor.

The TextDocument remains authoritative: local edits use the existing epoch queue and WorkspaceEdit, external changes replace the renderer mirror, and history commands drain accepted edits before invoking host undo/redo. Each webview generation has its own secret-authenticated transport and connection; reload/disposal closes pending requests and detaches listeners. Nested code block editors do not receive this secret and keep their separately sandboxed protocols; only their opaque host-transport payloads cross named RPC methods.