diff --git a/extensions/markdown-language-features/src/languageFeatures/dropIntoEditor.ts b/extensions/markdown-language-features/src/languageFeatures/dropIntoEditor.ts index a3b862b5bc3..fc78484fc5c 100644 --- a/extensions/markdown-language-features/src/languageFeatures/dropIntoEditor.ts +++ b/extensions/markdown-language-features/src/languageFeatures/dropIntoEditor.ts @@ -7,6 +7,22 @@ import * as path from 'path'; import * as vscode from 'vscode'; import * as URI from 'vscode-uri'; +const imageFileExtensions = new Set([ + '.bmp', + '.gif', + '.ico', + '.jpe', + '.jpeg', + '.jpg', + '.png', + '.psd', + '.svg', + '.tga', + '.tif', + '.tiff', + '.webp', +]); + 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 { @@ -37,7 +53,8 @@ export function registerDropIntoEditor(selector: vscode.DocumentSelector) { uris.forEach((uri, i) => { const rel = path.relative(URI.Utils.dirname(document.uri).fsPath, uri.fsPath); - snippet.appendText('['); + const ext = URI.Utils.extname(uri).toLowerCase(); + snippet.appendText(imageFileExtensions.has(ext) ? '![' : '['); snippet.appendTabstop(); snippet.appendText(`](${rel})`);