Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/workbench/contrib/chat/browser/chatLayoutService.ts
3296 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
import { Disposable } from '../../../../base/common/lifecycle.js';
7
import { derived, IObservable } from '../../../../base/common/observable.js';
8
import { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';
9
import { observableConfigValue } from '../../../../platform/observable/common/platformObservableUtils.js';
10
import { IChatLayoutService } from '../common/chatLayoutService.js';
11
12
const FONT_SIZE = 13;
13
14
export class ChatLayoutService extends Disposable implements IChatLayoutService {
15
declare readonly _serviceBrand: undefined;
16
17
readonly fontFamily: IObservable<string | null>;
18
readonly fontSize: IObservable<number>;
19
20
constructor(@IConfigurationService configurationService: IConfigurationService) {
21
super();
22
23
const chatFontFamily = observableConfigValue<string>('chat.fontFamily', 'default', configurationService);
24
this.fontFamily = derived(reader => {
25
const fontFamily = chatFontFamily.read(reader);
26
return fontFamily === 'default' ? null : fontFamily;
27
});
28
29
this.fontSize = observableConfigValue<number>('chat.fontSize', FONT_SIZE, configurationService);
30
}
31
}
32
33