import { Event } from "../../../base/common/event.js"; import { IDisposable } from "../../../base/common/lifecycle.js"; import { ConfigurationChangedEvent, IComputedEditorOptions, IEditorOptions } from "./editorOptions.js"; import { IDimension } from "../core/2d/dimension.js"; import { MenuId } from "../../../platform/actions/common/actions.js"; export interface IEditorConfiguration extends IDisposable { /** * Is this a simple widget (not a real code editor)? */ readonly isSimpleWidget: boolean; /** * The context menu id for the editor. */ readonly contextMenuId: MenuId; /** * Computed editor options. */ readonly options: IComputedEditorOptions; /** * The `options` have changed (quick event) */ readonly onDidChangeFast: Event; /** * The `options` have changed (slow event) */ readonly onDidChange: Event; /** * Get the raw options as they were passed in to the editor * and merged with all calls to `updateOptions`. */ getRawOptions(): IEditorOptions; /** * Update the options with new partial options. All previous * options will be kept and only present keys will be overwritten. */ updateOptions(newOptions: Readonly): void; /** * Recompute options with new reference element dimensions. */ observeContainer(dimension?: IDimension): void; /** * Set if the current model is dominated by long lines. */ setIsDominatedByLongLines(isDominatedByLongLines: boolean): void; /** * Set the current model line count. */ setModelLineCount(modelLineCount: number): void; /** * Set the current view model line count. */ setViewLineCount(viewLineCount: number): void; /** * Set reserved height above. */ setReservedHeight(reservedHeight: number): void; /** * Set the number of decoration lanes to be rendered in the glyph margin. */ setGlyphMarginDecorationLaneCount(decorationLaneCount: number): void; }