mirror of
https://github.com/Microsoft/vscode
synced 2024-08-27 04:49:35 +00:00
Allow relative file links inside of markdown notebook cells
Fixes #126097
This commit is contained in:
parent
4415c0f105
commit
8a7324fd2e
|
@ -27,7 +27,7 @@ import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
|
|||
import { IContextMenuService } from 'vs/platform/contextview/browser/contextView';
|
||||
import { IFileDialogService } from 'vs/platform/dialogs/common/dialogs';
|
||||
import { IFileService } from 'vs/platform/files/common/files';
|
||||
import { IOpenerService, matchesScheme } from 'vs/platform/opener/common/opener';
|
||||
import { IOpenerService, matchesScheme, matchesSomeScheme } from 'vs/platform/opener/common/opener';
|
||||
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
||||
import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace';
|
||||
import { IWorkspaceTrustManagementService } from 'vs/platform/workspace/common/workspaceTrust';
|
||||
|
@ -615,6 +615,16 @@ var requirejs = (function() {
|
|||
this._onDidClickDataLink(data);
|
||||
break;
|
||||
}
|
||||
case 'clicked-link':
|
||||
{
|
||||
if (matchesSomeScheme(data.href, Schemas.http, Schemas.https, Schemas.mailto)) {
|
||||
this.openerService.open(data.href, { fromUserGesture: true });
|
||||
} else if (!/^[\w\-]+:/.test(data.href)) {
|
||||
const path = URI.joinPath(dirname(this.documentUri), data.href);
|
||||
this.openerService.open(path, { fromUserGesture: true });
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'customKernelMessage':
|
||||
{
|
||||
this._onMessage.fire({ message: data.message });
|
||||
|
|
|
@ -83,6 +83,11 @@ export interface IClickMarkupCellMessage extends BaseToWebviewMessage {
|
|||
readonly shiftKey: boolean;
|
||||
}
|
||||
|
||||
export interface IClickedLinkMessage extends BaseToWebviewMessage {
|
||||
readonly type: 'clicked-link';
|
||||
readonly href: string;
|
||||
}
|
||||
|
||||
export interface IContextMenuMarkupCellMessage extends BaseToWebviewMessage {
|
||||
readonly type: 'contextMenuMarkupCell';
|
||||
readonly cellId: string;
|
||||
|
@ -373,6 +378,7 @@ export type FromWebviewMessage = WebviewInitialized |
|
|||
ICustomRendererMessage |
|
||||
IClickedDataUrlMessage |
|
||||
IClickMarkupCellMessage |
|
||||
IClickedLinkMessage |
|
||||
IContextMenuMarkupCellMessage |
|
||||
IMouseEnterMarkupCellMessage |
|
||||
IMouseLeaveMarkupCellMessage |
|
||||
|
|
|
@ -96,9 +96,15 @@ async function webviewPreloads(ctx: PreloadContext) {
|
|||
postNotebookMessage<webviewMessages.IScrollToRevealMessage>('scroll-to-reveal', { scrollTop });
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
const href = node.getAttribute('href');
|
||||
if (href) {
|
||||
postNotebookMessage<webviewMessages.IClickedLinkMessage>('clicked-link', { href });
|
||||
}
|
||||
}
|
||||
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue