diff --git a/extensions/markdown-language-features/src/preview/previewManager.ts b/extensions/markdown-language-features/src/preview/previewManager.ts index 50196ac882e..9e32e954c92 100644 --- a/extensions/markdown-language-features/src/preview/previewManager.ts +++ b/extensions/markdown-language-features/src/preview/previewManager.ts @@ -42,8 +42,9 @@ class PreviewStore extends Disposable { } public get(resource: vscode.Uri, previewSettings: DynamicPreviewSettings): T | undefined { + const previewColumn = this.resolvePreviewColumn(previewSettings); for (const preview of this._previews) { - if (preview.matchesResource(resource, previewSettings.previewColumn, previewSettings.locked)) { + if (preview.matchesResource(resource, previewColumn, previewSettings.locked)) { return preview; } } @@ -57,6 +58,18 @@ class PreviewStore extends Disposable { public delete(preview: T) { this._previews.delete(preview); } + + private resolvePreviewColumn(previewSettings: DynamicPreviewSettings): vscode.ViewColumn | undefined { + if (previewSettings.previewColumn === vscode.ViewColumn.Active) { + return vscode.window.tabGroups.activeTabGroup.viewColumn; + } + + if (previewSettings.previewColumn === vscode.ViewColumn.Beside) { + return vscode.window.tabGroups.activeTabGroup.viewColumn + 1; + } + + return previewSettings.previewColumn; + } } export class MarkdownPreviewManager extends Disposable implements vscode.WebviewPanelSerializer, vscode.CustomTextEditorProvider {