Addd option to open markdown preview links in markdown preview

Fixes #19339
This commit is contained in:
Matt Bierner
2018-09-21 15:07:48 -07:00
parent a101ececf4
commit e19c9ba82d
5 changed files with 85 additions and 17 deletions

View File

@@ -15,6 +15,7 @@ import { getVisibleLine, MarkdownFileTopmostLineMonitor } from '../util/topmostL
import { MarkdownPreviewConfigurationManager } from './previewConfig';
import { MarkdownContributions } from '../markdownExtensions';
import { isMarkdownFile } from '../util/file';
import { resolveLinkToMarkdownFile } from '../commands/openDocumentLink';
const localize = nls.loadMessageBundle();
export class MarkdownPreview {
@@ -137,7 +138,7 @@ export class MarkdownPreview {
break;
case 'clickLink':
vscode.commands.executeCommand('_markdown.openDocumentLink', e.body);
this.onDidClickPreviewLink(e.body.path, e.body.fragement);
break;
case 'showPreviewSecuritySelector':
@@ -414,6 +415,20 @@ export class MarkdownPreview {
vscode.workspace.openTextDocument(this._resource).then(vscode.window.showTextDocument);
}
private async onDidClickPreviewLink(path: string, fragment: string | undefined) {
const config = vscode.workspace.getConfiguration('markdown', this.resource);
const openLinks = config.get<string>('preview.openMarkdownLinks', 'inPreview');
if (openLinks === 'inPreview') {
const markdownLink = await resolveLinkToMarkdownFile(path);
if (markdownLink) {
this.update(markdownLink);
return;
}
}
vscode.commands.executeCommand('_markdown.openDocumentLink', { path, fragment });
}
private async onCacheImageSizes(imageInfo: { id: string, width: number, height: number }[]) {
this.imageInfo = imageInfo;
}