From bad3dcca69e0cff8a38e60f7d0bf0b97bd92bafe Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Mon, 17 Oct 2022 16:14:16 -0700 Subject: [PATCH] Fix insert image/link for untitled files (#163897) --- .../src/commands/insertResource.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/extensions/markdown-language-features/src/commands/insertResource.ts b/extensions/markdown-language-features/src/commands/insertResource.ts index 65c0c9249a0..c3d07b32d29 100644 --- a/extensions/markdown-language-features/src/commands/insertResource.ts +++ b/extensions/markdown-language-features/src/commands/insertResource.ts @@ -8,6 +8,7 @@ import * as nls from 'vscode-nls'; import { Command } from '../commandManager'; import { createUriListSnippet, getParentDocumentUri, imageFileExtensions } from '../languageFeatures/dropIntoEditor'; import { coalesce } from '../util/arrays'; +import { Schemes } from '../util/schemes'; const localize = nls.loadMessageBundle(); @@ -27,7 +28,7 @@ export class InsertLinkFromWorkspace implements Command { canSelectMany: true, openLabel: localize('insertLink.openLabel', "Insert link"), title: localize('insertLink.title', "Insert link"), - defaultUri: getParentDocumentUri(activeEditor.document), + defaultUri: getDefaultUri(activeEditor.document), }); return insertLink(activeEditor, resources ?? [], false); @@ -52,13 +53,21 @@ export class InsertImageFromWorkspace implements Command { }, openLabel: localize('insertImage.openLabel', "Insert image"), title: localize('insertImage.title', "Insert image"), - defaultUri: getParentDocumentUri(activeEditor.document), + defaultUri: getDefaultUri(activeEditor.document), }); return insertLink(activeEditor, resources ?? [], true); } } +function getDefaultUri(document: vscode.TextDocument) { + const docUri = getParentDocumentUri(document); + if (docUri.scheme === Schemes.untitled) { + return vscode.workspace.workspaceFolders?.[0]?.uri; + } + return docUri; +} + async function insertLink(activeEditor: vscode.TextEditor, selectedFiles: vscode.Uri[], insertAsImage: boolean): Promise { if (!selectedFiles.length) { return;