Path: blob/main/src/vs/editor/common/config/editorZoom.ts
3295 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 { Emitter, Event } from '../../../base/common/event.js';67export interface IEditorZoom {8onDidChangeZoomLevel: Event<number>;9getZoomLevel(): number;10setZoomLevel(zoomLevel: number): void;11}1213export const EditorZoom: IEditorZoom = new class implements IEditorZoom {1415private _zoomLevel: number = 0;1617private readonly _onDidChangeZoomLevel = new Emitter<number>();18public readonly onDidChangeZoomLevel: Event<number> = this._onDidChangeZoomLevel.event;1920public getZoomLevel(): number {21return this._zoomLevel;22}2324public setZoomLevel(zoomLevel: number): void {25zoomLevel = Math.min(Math.max(-5, zoomLevel), 20);26if (this._zoomLevel === zoomLevel) {27return;28}2930this._zoomLevel = zoomLevel;31this._onDidChangeZoomLevel.fire(this._zoomLevel);32}33};343536