diff --git a/extensions/markdown-language-features/package.json b/extensions/markdown-language-features/package.json index 33d3be13b78..609ea51e76f 100644 --- a/extensions/markdown-language-features/package.json +++ b/extensions/markdown-language-features/package.json @@ -407,6 +407,12 @@ "default": "off", "description": "%markdown.trace.desc%", "scope": "window" + }, + "markdown.editor.drop.enabled": { + "type": "boolean", + "default": true, + "markdownDescription": "%configuration.markdown.editor.drop.enabled%", + "scope": "resource" } } }, diff --git a/extensions/markdown-language-features/package.nls.json b/extensions/markdown-language-features/package.nls.json index 78927ee2a78..444c112e9de 100644 --- a/extensions/markdown-language-features/package.nls.json +++ b/extensions/markdown-language-features/package.nls.json @@ -28,5 +28,6 @@ "configuration.markdown.links.openLocation.currentGroup": "Open links in the active editor group.", "configuration.markdown.links.openLocation.beside": "Open links beside the active editor.", "configuration.markdown.suggest.paths.enabled.description": "Enable/disable path suggestions for markdown links", + "configuration.markdown.editor.drop.enabled": "Enable/disable dropping into the markdown editor to insert shift. Requires enabling `#workbench.editor.dropIntoEditor.enabled#`.", "workspaceTrust": "Required for loading styles configured in the workspace." } diff --git a/extensions/markdown-language-features/src/languageFeatures/dropIntoEditor.ts b/extensions/markdown-language-features/src/languageFeatures/dropIntoEditor.ts index 14a2ace9db6..a3b862b5bc3 100644 --- a/extensions/markdown-language-features/src/languageFeatures/dropIntoEditor.ts +++ b/extensions/markdown-language-features/src/languageFeatures/dropIntoEditor.ts @@ -10,6 +10,11 @@ import * as URI from 'vscode-uri'; export function registerDropIntoEditor(selector: vscode.DocumentSelector) { return vscode.languages.registerDocumentOnDropProvider(selector, new class implements vscode.DocumentOnDropProvider { async provideDocumentOnDropEdits(document: vscode.TextDocument, position: vscode.Position, dataTransfer: vscode.DataTransfer, _token: vscode.CancellationToken): Promise { + const enabled = vscode.workspace.getConfiguration('markdown', document).get('editor.drop.enabled', true); + if (!enabled) { + return; + } + const urlList = await dataTransfer.get('text/uri-list')?.asString(); if (!urlList) { return undefined;