mirror of
https://github.com/microsoft/vscode.git
synced 2026-05-08 09:08:48 +01:00
Fix opening encoded markdown fragment in preview (#178465)
Fixes #178340
This commit is contained in:
@@ -77,10 +77,16 @@ onceDocumentLoaded(() => {
|
||||
doAfterImagesLoaded(() => {
|
||||
// Try to scroll to fragment if available
|
||||
if (settings.settings.fragment) {
|
||||
let fragment: string;
|
||||
try {
|
||||
fragment = encodeURIComponent(settings.settings.fragment);
|
||||
} catch {
|
||||
fragment = settings.settings.fragment;
|
||||
}
|
||||
state.fragment = undefined;
|
||||
vscode.setState(state);
|
||||
|
||||
const element = getLineElementForFragment(settings.settings.fragment, documentVersion);
|
||||
const element = getLineElementForFragment(fragment, documentVersion);
|
||||
if (element) {
|
||||
scrollDisabledCount += 1;
|
||||
scrollToRevealSourceLine(element.line, documentVersion, settings);
|
||||
|
||||
@@ -37,7 +37,7 @@ export class PreviewDocumentVersion {
|
||||
interface MarkdownPreviewDelegate {
|
||||
getTitle?(resource: vscode.Uri): string;
|
||||
getAdditionalState(): {};
|
||||
openPreviewLinkToMarkdownFile(markdownLink: vscode.Uri, fragment: string): void;
|
||||
openPreviewLinkToMarkdownFile(markdownLink: vscode.Uri, fragment: string | undefined): void;
|
||||
}
|
||||
|
||||
class MarkdownPreview extends Disposable implements WebviewResourceProvider {
|
||||
@@ -410,7 +410,7 @@ class MarkdownPreview extends Disposable implements WebviewResourceProvider {
|
||||
try {
|
||||
const doc = await vscode.workspace.openTextDocument(vscode.Uri.from(resolved.uri));
|
||||
if (isMarkdownFile(doc)) {
|
||||
return this._delegate.openPreviewLinkToMarkdownFile(doc.uri, resolved.fragment ?? '');
|
||||
return this._delegate.openPreviewLinkToMarkdownFile(doc.uri, resolved.fragment ? decodeURIComponent(resolved.fragment) : undefined);
|
||||
}
|
||||
} catch {
|
||||
// Noop
|
||||
|
||||
Reference in New Issue
Block a user