import { ILineChange, IRange, ISelection, MaybePromise } from '@opensumi/ide-core-common'; import { IDecorationApplyOptions, IDecorationRenderOptions, IResourceOpenOptions, ISingleEditOperation, IUndoStopOptions } from '@opensumi/ide-editor'; import { ViewColumn } from './enums'; import type { EndOfLineSequence, RenderLineNumbersType } from './models'; export * from './custom-editor'; export * from './enums'; export interface IExtensionHostEditorService { $acceptChange(change: IEditorChangeDTO): MaybePromise; $acceptPropertiesChanges(changes: IEditorStatusChangeDTO[]): MaybePromise; } export interface IMainThreadEditorsService { $createTextEditorDecorationType(key: string, resolved: IDecorationRenderOptions): Promise; $deleteTextEditorDecorationType(key: string): void; $applyDecoration(id: string, decorationKey: string, options: IDecorationApplyOptions[]): Promise; $applyEdits(id: string, documentVersionId: number, edits: ISingleEditOperation[], options: { setEndOfLine: EndOfLineSequence | undefined; undoStopBefore: boolean; undoStopAfter: boolean; }): Promise; $revealRange(id: string, range: IRange, type?: TextEditorRevealType): Promise; $getInitialState(): Promise; $closeEditor(id: string): Promise; $insertSnippet(id: string, snippet: string, ranges?: IRange[], options?: IUndoStopOptions): Promise; $openResource(uri: string, options: IResourceOpenOptions): Promise; $setSelections(id: string, selections: ISelection[]): Promise; $updateOptions(id: string, options: ITextEditorUpdateConfiguration): Promise; $getDiffInformation(id: string): Promise; } export interface IEditorStatusChangeDTO { id: string; selections?: ISelectionChangeEvent; options?: IResolvedTextEditorConfiguration; visibleRanges?: IRange[]; viewColumn?: number; } export interface IEditorChangeDTO { created?: IEditorCreatedDTO[]; removed?: string[]; actived?: string; } export interface IEditorCreatedDTO extends IEditorChangeDTO { id: string; selections: ISelection[]; options: IResolvedTextEditorConfiguration; uri: string; viewColumn: number; visibleRanges: IRange[]; } export interface ISelectionChangeEvent { selections: ISelection[]; source?: string; } export interface IResolvedTextEditorConfiguration { tabSize: number; indentSize: number; insertSpaces: boolean; cursorStyle: TextEditorCursorStyle; lineNumbers: RenderLineNumbersType; } export interface ITextEditorUpdateConfiguration { tabSize?: number | 'auto'; indentSize?: number | 'tabSize'; insertSpaces?: boolean | 'auto'; cursorStyle?: TextEditorCursorStyle; lineNumbers?: RenderLineNumbersType; } /** * The style in which the editor's cursor should be rendered. */ export declare enum TextEditorCursorStyle { /** * As a vertical line (sitting between two characters). */ Line = 1, /** * As a block (sitting on top of a character). */ Block = 2, /** * As a horizontal line (sitting under a character). */ Underline = 3, /** * As a thin vertical line (sitting between two characters). */ LineThin = 4, /** * As an outlined block (sitting on top of a character). */ BlockOutline = 5, /** * As a thin horizontal line (sitting under a character). */ UnderlineThin = 6 } export declare enum TextEditorSelectionChangeKind { Keyboard = 1, Mouse = 2, Command = 3 } export declare namespace TextEditorSelectionChangeKind { function fromValue(s: string | undefined): TextEditorSelectionChangeKind | undefined; } /** * Represents different [reveal](#TextEditor.revealRange) strategies in a text editor. */ export declare enum TextEditorRevealType { /** * The range will be revealed with as little scrolling as possible. */ Default = 0, /** * The range will always be revealed in the center of the viewport. */ InCenter = 1, /** * If the range is outside the viewport, it will be revealed in the center of the viewport. * Otherwise, it will be revealed with as little scrolling as possible. */ InCenterIfOutsideViewport = 2, /** * The range will always be revealed at the top of the viewport. */ AtTop = 3 } export interface TextDocumentShowOptions { /** * An optional view column in which the [editor](#TextEditor) should be shown. * The default is the [active](#ViewColumn.Active), other values are adjusted to * be `Min(column, columnCount + 1)`, the [active](#ViewColumn.Active)-column is * not adjusted. Use [`ViewColumn.Beside`](#ViewColumn.Beside) to open the * editor to the side of the currently active one. */ viewColumn?: ViewColumn; /** * An optional flag that when `true` will stop the [editor](#TextEditor) from taking focus. */ preserveFocus?: boolean; /** * An optional flag that controls if an [editor](#TextEditor)-tab will be replaced * with the next editor or if it will be kept. */ preview?: boolean; /** * An optional selection to apply for the document in the [editor](#TextEditor). */ selection?: IRange; } //# sourceMappingURL=editor.d.ts.map