Path: blob/main/src/vs/workbench/contrib/chat/browser/chatLayoutService.ts
3296 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*--------------------------------------------------------------------------------------------*/45import { Disposable } from '../../../../base/common/lifecycle.js';6import { derived, IObservable } from '../../../../base/common/observable.js';7import { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';8import { observableConfigValue } from '../../../../platform/observable/common/platformObservableUtils.js';9import { IChatLayoutService } from '../common/chatLayoutService.js';1011const FONT_SIZE = 13;1213export class ChatLayoutService extends Disposable implements IChatLayoutService {14declare readonly _serviceBrand: undefined;1516readonly fontFamily: IObservable<string | null>;17readonly fontSize: IObservable<number>;1819constructor(@IConfigurationService configurationService: IConfigurationService) {20super();2122const chatFontFamily = observableConfigValue<string>('chat.fontFamily', 'default', configurationService);23this.fontFamily = derived(reader => {24const fontFamily = chatFontFamily.read(reader);25return fontFamily === 'default' ? null : fontFamily;26});2728this.fontSize = observableConfigValue<number>('chat.fontSize', FONT_SIZE, configurationService);29}30}313233