Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/extensions/markdown-language-features/preview-src/settings.ts
3292 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
export interface PreviewSettings {
7
readonly source: string;
8
readonly line?: number;
9
readonly fragment?: string;
10
readonly selectedLine?: number;
11
12
readonly scrollPreviewWithEditor?: boolean;
13
readonly scrollEditorWithPreview: boolean;
14
readonly disableSecurityWarnings: boolean;
15
readonly doubleClickToSwitchToEditor: boolean;
16
readonly webviewResourceRoot: string;
17
}
18
19
export function getRawData(key: string): string {
20
const element = document.getElementById('vscode-markdown-preview-data');
21
if (element) {
22
const data = element.getAttribute(key);
23
if (data) {
24
return data;
25
}
26
}
27
28
throw new Error(`Could not load data for ${key}`);
29
}
30
31
export function getData<T = {}>(key: string): T {
32
return JSON.parse(getRawData(key));
33
}
34
35
export class SettingsManager {
36
private _settings: PreviewSettings = getData('data-settings');
37
38
public get settings(): PreviewSettings {
39
return this._settings;
40
}
41
42
public updateSettings(newSettings: PreviewSettings) {
43
this._settings = newSettings;
44
}
45
}
46
47