From 4be8c85b6459899a2f9b48a2b8565ab0cd1a102c Mon Sep 17 00:00:00 2001 From: Matthew Lipski Date: Tue, 5 May 2026 22:06:21 +0200 Subject: [PATCH] Made pasting from VSCode fallback to pasting plain text if it fails --- .../src/api/clipboard/fromClipboard/handleVSCodePaste.ts | 8 ++------ .../src/api/clipboard/fromClipboard/pasteExtension.ts | 9 +++++++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/packages/core/src/api/clipboard/fromClipboard/handleVSCodePaste.ts b/packages/core/src/api/clipboard/fromClipboard/handleVSCodePaste.ts index b566dfdbe2..ffb298544f 100644 --- a/packages/core/src/api/clipboard/fromClipboard/handleVSCodePaste.ts +++ b/packages/core/src/api/clipboard/fromClipboard/handleVSCodePaste.ts @@ -1,9 +1,6 @@ import { EditorView } from "prosemirror-view"; -export async function handleVSCodePaste( - event: ClipboardEvent, - view: EditorView, -) { +export function handleVSCodePaste(event: ClipboardEvent, view: EditorView) { const { schema } = view.state; if (!event.clipboardData) { @@ -17,8 +14,7 @@ export async function handleVSCodePaste( } if (!schema.nodes.codeBlock) { - view.pasteText(text); - return true; + return false; } const vscode = event.clipboardData!.getData("vscode-editor-data"); diff --git a/packages/core/src/api/clipboard/fromClipboard/pasteExtension.ts b/packages/core/src/api/clipboard/fromClipboard/pasteExtension.ts index 415b3cb7be..9fa4ed3c55 100644 --- a/packages/core/src/api/clipboard/fromClipboard/pasteExtension.ts +++ b/packages/core/src/api/clipboard/fromClipboard/pasteExtension.ts @@ -57,8 +57,13 @@ function defaultPasteHandler({ } if (format === "vscode-editor-data") { - handleVSCodePaste(event, editor.prosemirrorView); - return true; + // If VSCode clipboard data cannot be parsed as a code block, try parsing + // `text/plain` as a fallback. + if (handleVSCodePaste(event, editor.prosemirrorView)) { + return true; + } + + format = "text/plain"; } if (format === "Files") {