import { Event } from "../../../base/common/event.js"; import { Disposable } from "../../../base/common/lifecycle.js"; import { ConfigurationChangedEvent, EditorOption, FindComputedEditorOptionValueById, IComputedEditorOptions, IEditorOptions, IEnvironmentalOptions } from "../../common/config/editorOptions.js"; import { BareFontInfo, FontInfo, IValidatedEditorOptions } from "../../common/config/fontInfo.js"; import { IDimension } from "../../common/core/2d/dimension.js"; import { IEditorConfiguration } from "../../common/config/editorConfiguration.js"; import { AccessibilitySupport } from "../../../platform/accessibility/common/accessibility.js"; import { IAccessibilityService } from "../../../platform/accessibility/common/accessibility.service.js"; import { MenuId } from "../../../platform/actions/common/actions.js"; export interface IEditorConstructionOptions extends IEditorOptions { /** * The initial editor dimension (to avoid measuring the container). */ dimension?: IDimension; /** * Place overflow widgets inside an external DOM node. * Defaults to an internal DOM node. */ overflowWidgetsDomNode?: HTMLElement; } export declare class EditorConfiguration extends Disposable implements IEditorConfiguration { private readonly _accessibilityService; private _onDidChange; readonly onDidChange: Event; private _onDidChangeFast; readonly onDidChangeFast: Event; readonly isSimpleWidget: boolean; readonly contextMenuId: MenuId; readonly isStandaloneEditor: boolean; private readonly _containerObserver; private _isDominatedByLongLines; private _viewLineCount; private _lineNumbersDigitCount; private _reservedHeight; private _glyphMarginDecorationLaneCount; private _targetWindowId; private readonly _computeOptionsMemory; /** * Raw options as they were passed in and merged with all calls to `updateOptions`. */ private readonly _rawOptions; /** * Validated version of `_rawOptions`. */ private _validatedOptions; /** * Complete options which are a combination of passed in options and env values. */ options: ComputedEditorOptions; constructor(isSimpleWidget: boolean, contextMenuId: MenuId, isStandaloneEditor: boolean, options: Readonly, container: HTMLElement | null, _accessibilityService: IAccessibilityService); private _recomputeOptions; private _computeOptions; protected _readEnvConfiguration(): IEnvConfiguration; protected _readFontInfo(bareFontInfo: BareFontInfo): FontInfo; getRawOptions(): IEditorOptions; updateOptions(_newOptions: Readonly): void; observeContainer(dimension?: IDimension): void; setIsDominatedByLongLines(isDominatedByLongLines: boolean): void; setModelLineCount(modelLineCount: number): void; setViewLineCount(viewLineCount: number): void; setReservedHeight(reservedHeight: number): void; setGlyphMarginDecorationLaneCount(decorationLaneCount: number): void; } export interface IEnvConfiguration { extraEditorClassName: string; outerWidth: number; outerHeight: number; emptySelectionClipboard: boolean; pixelRatio: number; accessibilitySupport: AccessibilitySupport; editContextSupported: boolean; } declare class ValidatedEditorOptions implements IValidatedEditorOptions { private readonly _values; _read(option: EditorOption): T; get(id: T): FindComputedEditorOptionValueById; _write(option: EditorOption, value: T): void; } export declare class ComputedEditorOptions implements IComputedEditorOptions { private readonly _values; _read(id: EditorOption): T; get(id: T): FindComputedEditorOptionValueById; _write(id: EditorOption, value: T): void; } export declare class EditorOptionsUtil { static validateOptions(options: IEditorOptions): ValidatedEditorOptions; static computeOptions(options: ValidatedEditorOptions, env: IEnvironmentalOptions): ComputedEditorOptions; private static _deepEquals; static checkEquals(a: ComputedEditorOptions, b: ComputedEditorOptions): ConfigurationChangedEvent | null; /** * Returns true if something changed. * Modifies `options`. */ static applyUpdate(options: IEditorOptions, update: Readonly): boolean; } export {};