Path: blob/main/extensions/markdown-language-features/preview-src/settings.ts
3292 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45export interface PreviewSettings {6readonly source: string;7readonly line?: number;8readonly fragment?: string;9readonly selectedLine?: number;1011readonly scrollPreviewWithEditor?: boolean;12readonly scrollEditorWithPreview: boolean;13readonly disableSecurityWarnings: boolean;14readonly doubleClickToSwitchToEditor: boolean;15readonly webviewResourceRoot: string;16}1718export function getRawData(key: string): string {19const element = document.getElementById('vscode-markdown-preview-data');20if (element) {21const data = element.getAttribute(key);22if (data) {23return data;24}25}2627throw new Error(`Could not load data for ${key}`);28}2930export function getData<T = {}>(key: string): T {31return JSON.parse(getRawData(key));32}3334export class SettingsManager {35private _settings: PreviewSettings = getData('data-settings');3637public get settings(): PreviewSettings {38return this._settings;39}4041public updateSettings(newSettings: PreviewSettings) {42this._settings = newSettings;43}44}454647