mirror of
https://github.com/Microsoft/vscode
synced 2024-10-04 02:14:06 +00:00
Re-render markdown preview when linkify setting changes (#200599)
This commit is contained in:
parent
58171d859b
commit
d81d32b940
|
@ -8,6 +8,7 @@ import type Token = require('markdown-it/lib/token');
|
|||
import * as vscode from 'vscode';
|
||||
import { ILogger } from './logging';
|
||||
import { MarkdownContributionProvider } from './markdownExtensions';
|
||||
import { MarkdownPreviewConfiguration } from './preview/previewConfig';
|
||||
import { Slugifier } from './slugify';
|
||||
import { ITextDocument } from './types/textDocument';
|
||||
import { WebviewResourceProvider } from './util/resources';
|
||||
|
@ -237,11 +238,11 @@ export class MarkdownItEngine implements IMdParser {
|
|||
}
|
||||
|
||||
private _getConfig(resource?: vscode.Uri): MarkdownItConfig {
|
||||
const config = vscode.workspace.getConfiguration('markdown', resource ?? null);
|
||||
const config = MarkdownPreviewConfiguration.getForResource(resource ?? null);
|
||||
return {
|
||||
breaks: config.get<boolean>('preview.breaks', false),
|
||||
linkify: config.get<boolean>('preview.linkify', true),
|
||||
typographer: config.get<boolean>('preview.typographer', false)
|
||||
breaks: config.previewLineBreaks,
|
||||
linkify: config.previewLinkify,
|
||||
typographer: config.previewTypographer,
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -7,13 +7,17 @@ import * as vscode from 'vscode';
|
|||
import { equals } from '../util/arrays';
|
||||
|
||||
export class MarkdownPreviewConfiguration {
|
||||
public static getForResource(resource: vscode.Uri) {
|
||||
public static getForResource(resource: vscode.Uri | null) {
|
||||
return new MarkdownPreviewConfiguration(resource);
|
||||
}
|
||||
|
||||
public readonly scrollBeyondLastLine: boolean;
|
||||
public readonly wordWrap: boolean;
|
||||
public readonly lineBreaks: boolean;
|
||||
|
||||
public readonly previewLineBreaks: boolean;
|
||||
public readonly previewLinkify: boolean;
|
||||
public readonly previewTypographer: boolean;
|
||||
|
||||
public readonly doubleClickToSwitchToEditor: boolean;
|
||||
public readonly scrollEditorWithPreview: boolean;
|
||||
public readonly scrollPreviewWithEditor: boolean;
|
||||
|
@ -24,7 +28,7 @@ export class MarkdownPreviewConfiguration {
|
|||
public readonly fontFamily: string | undefined;
|
||||
public readonly styles: readonly string[];
|
||||
|
||||
private constructor(resource: vscode.Uri) {
|
||||
private constructor(resource: vscode.Uri | null) {
|
||||
const editorConfig = vscode.workspace.getConfiguration('editor', resource);
|
||||
const markdownConfig = vscode.workspace.getConfiguration('markdown', resource);
|
||||
const markdownEditorConfig = vscode.workspace.getConfiguration('[markdown]', resource);
|
||||
|
@ -38,7 +42,11 @@ export class MarkdownPreviewConfiguration {
|
|||
|
||||
this.scrollPreviewWithEditor = !!markdownConfig.get<boolean>('preview.scrollPreviewWithEditor', true);
|
||||
this.scrollEditorWithPreview = !!markdownConfig.get<boolean>('preview.scrollEditorWithPreview', true);
|
||||
this.lineBreaks = !!markdownConfig.get<boolean>('preview.breaks', false);
|
||||
|
||||
this.previewLineBreaks = !!markdownConfig.get<boolean>('preview.breaks', false);
|
||||
this.previewLinkify = !!markdownConfig.get<boolean>('preview.linkify', true);
|
||||
this.previewTypographer = !!markdownConfig.get<boolean>('preview.typographer', false);
|
||||
|
||||
this.doubleClickToSwitchToEditor = !!markdownConfig.get<boolean>('preview.doubleClickToSwitchToEditor', true);
|
||||
this.markEditorSelection = !!markdownConfig.get<boolean>('preview.markEditorSelection', true);
|
||||
|
||||
|
@ -61,7 +69,7 @@ export class MarkdownPreviewConfiguration {
|
|||
return equals(this.styles, otherConfig.styles);
|
||||
}
|
||||
|
||||
[key: string]: any;
|
||||
readonly [key: string]: any;
|
||||
}
|
||||
|
||||
export class MarkdownPreviewConfigurationManager {
|
||||
|
|
Loading…
Reference in a new issue