UNPKG

ace-builds

Version:
1,022 lines (1,019 loc) 44.3 kB
/* This file is generated using `npm run update-types` */ /// <reference path="./types/ace-lib.d.ts" /> /// <reference path="./types/ace-modules.d.ts" /> /// <reference path="./types/ace-theme.d.ts" /> /// <reference path="./types/ace-ext.d.ts" /> /// <reference path="./types/ace-snippets.d.ts" /> /// <reference path="./ace-modes.d.ts" /> declare module "ace-builds" { export function require(name: string): any; export namespace Ace { type Anchor = import("ace-builds-internal/anchor").Anchor; type Editor = import("ace-builds-internal/editor").Editor; type EditSession = import("ace-builds-internal/edit_session").EditSession; type Document = import("ace-builds-internal/document").Document; type Fold = import("ace-builds-internal/edit_session/fold").Fold; type FoldLine = import("ace-builds-internal/edit_session/fold_line").FoldLine; type Range = import("ace-builds-internal/range").Range; type VirtualRenderer = import("ace-builds-internal/virtual_renderer").VirtualRenderer; type UndoManager = import("ace-builds-internal/undomanager").UndoManager; type Tokenizer = import("ace-builds-internal/tokenizer").Tokenizer; type TokenIterator = import("ace-builds-internal/token_iterator").TokenIterator; type Selection = import("ace-builds-internal/selection").Selection; type Autocomplete = import("ace-builds-internal/autocomplete").Autocomplete; type InlineAutocomplete = import("ace-builds/src-noconflict/ext-inline_autocomplete").InlineAutocomplete; type CompletionProvider = import("ace-builds-internal/autocomplete").CompletionProvider; type AcePopup = import("ace-builds-internal/autocomplete/popup").AcePopup; type AceInline = import("ace-builds-internal/autocomplete/inline").AceInline; type MouseEvent = import("ace-builds-internal/mouse/mouse_event").MouseEvent; type RangeList = import("ace-builds-internal/range_list").RangeList; type FilteredList = import("ace-builds-internal/autocomplete").FilteredList; type LineWidgets = import("ace-builds-internal/line_widgets").LineWidgets; type SearchBox = import("ace-builds/src-noconflict/ext-searchbox").SearchBox; type Occur = import("ace-builds-internal/occur").Occur; type DefaultHandlers = import("ace-builds-internal/mouse/default_handlers").DefaultHandlers; type GutterHandler = import("ace-builds-internal/mouse/default_gutter_handler").GutterHandler; type DragdropHandler = import("ace-builds-internal/mouse/dragdrop_handler").DragdropHandler; type AppConfig = import("ace-builds-internal/lib/app_config").AppConfig; type Config = typeof import("ace-builds-internal/config"); type GutterTooltip = import("ace-builds-internal/mouse/default_gutter_handler").GutterTooltip; type GutterKeyboardEvent = import("ace-builds-internal/keyboard/gutter_handler").GutterKeyboardEvent; type AfterLoadCallback = (err: Error | null, module: unknown) => void; type LoaderFunction = (moduleName: string, afterLoad: AfterLoadCallback) => void; export interface ConfigOptions { packaged: boolean; workerPath: string | null; modePath: string | null; themePath: string | null; basePath: string; suffix: string; loadWorkerFromBlob: boolean; sharedPopups: boolean; useStrictCSP: boolean | null; } interface Theme { cssClass?: string; cssText?: string; padding?: number | string; isDark?: boolean; } interface ScrollBar { setVisible(visible: boolean): void; [key: string]: any; } interface HScrollbar extends ScrollBar { setWidth(width: number): void; } interface VScrollbar extends ScrollBar { setHeight(width: number): void; } interface LayerConfig { width: number; padding: number; firstRow: number; firstRowScreen: number; lastRow: number; lineHeight: number; characterWidth: number; minHeight: number; maxHeight: number; offset: number; height: number; gutterOffset: number; } interface HardWrapOptions { startRow: number; endRow: number; allowMerge?: boolean; column?: number; } interface CommandBarOptions { maxElementsOnTooltip: number; alwaysShow: boolean; showDelay: number; hideDelay: number; } interface ScreenCoordinates { row: number; column: number; side?: 1 | -1; offsetX?: number; } interface Folding { /** * Looks up a fold at a given row/column. Possible values for side: * -1: ignore a fold if fold.start = row/column * +1: ignore a fold if fold.end = row/column **/ getFoldAt(row: number, column: number, side?: number): Ace.Fold; /** * Returns all folds in the given range. Note, that this will return folds **/ getFoldsInRange(range: Ace.Range | Ace.Delta): Ace.Fold[]; getFoldsInRangeList(ranges: Ace.Range[] | Ace.Range): Ace.Fold[]; /** * Returns all folds in the document */ getAllFolds(): Ace.Fold[]; /** * Returns the string between folds at the given position. * E.g. * foo<fold>b|ar<fold>wolrd -> "bar" * foo<fold>bar<fold>wol|rd -> "world" * foo<fold>bar<fo|ld>wolrd -> <null> * * where | means the position of row/column * * The trim option determs if the return string should be trimed according * to the "side" passed with the trim value: * * E.g. * foo<fold>b|ar<fold>wolrd -trim=-1> "b" * foo<fold>bar<fold>wol|rd -trim=+1> "rld" * fo|o<fold>bar<fold>wolrd -trim=00> "foo" */ getFoldStringAt(row: number, column: number, trim?: number, foldLine?: Ace.FoldLine): string | null; getFoldLine(docRow: number, startFoldLine?: Ace.FoldLine): null | Ace.FoldLine; /** * Returns the fold which starts after or contains docRow */ getNextFoldLine(docRow: number, startFoldLine?: Ace.FoldLine): null | Ace.FoldLine; getFoldedRowCount(first: number, last: number): number; /** * Adds a new fold. * The new created Fold object or an existing fold object in case the * passed in range fits an existing fold exactly. */ addFold(placeholder: Ace.Fold | string, range?: Ace.Range): Ace.Fold; addFolds(folds: Ace.Fold[]): void; removeFold(fold: Ace.Fold): void; removeFolds(folds: Ace.Fold[]): void; expandFold(fold: Ace.Fold): void; expandFolds(folds: Ace.Fold[]): void; unfold(location?: number | null | Ace.Point | Ace.Range | Ace.Range[], expandInner?: boolean): Ace.Fold[] | undefined; /** * Checks if a given documentRow is folded. This is true if there are some * folded parts such that some parts of the line is still visible. **/ isRowFolded(docRow: number, startFoldRow?: Ace.FoldLine): boolean; getRowFoldEnd(docRow: number, startFoldRow?: Ace.FoldLine): number; getRowFoldStart(docRow: number, startFoldRow?: Ace.FoldLine): number; getFoldDisplayLine(foldLine: Ace.FoldLine, endRow?: number | null, endColumn?: number | null, startRow?: number | null, startColumn?: number | null): string; getDisplayLine(row: number, endColumn: number | null, startRow: number | null, startColumn: number | null): string; toggleFold(tryToUnfold?: boolean): void; getCommentFoldRange(row: number, column: number, dir?: number): Ace.Range | undefined; foldAll(startRow?: number | null, endRow?: number | null, depth?: number | null, test?: Function): void; foldToLevel(level: number): void; foldAllComments(): void; setFoldStyle(style: string): void; foldWidgets: any[]; getFoldWidget: any; getFoldWidgetRange: any; getParentFoldRangeData(row: number, ignoreCurrent?: boolean): { range?: Ace.Range; firstRange?: Ace.Range; }; onFoldWidgetClick(row: number, e: any): void; toggleFoldWidget(toggleParent?: boolean): void; updateFoldWidgets(delta: Ace.Delta): void; tokenizerUpdateFoldWidgets(e: any): void; } interface BracketMatch { findMatchingBracket: (position: Point, chr?: string) => Point; getBracketRange: (pos: Point) => null | Range; /** * Returns: * * null if there is no any bracket at `pos`; * * two Ranges if there is opening and closing brackets; * * one Range if there is only one bracket */ getMatchingBracketRanges: (pos: Point, isBackwards?: boolean) => null | Range[]; /** * Returns [[Range]]'s for matching tags and tag names, if there are any */ getMatchingTags: (pos: Point) => { closeTag: Range; closeTagName: Range; openTag: Range; openTagName: Range; }; } interface IRange { start: Point; end: Point; } interface LineWidget { editor?: Editor; el?: HTMLElement; rowCount?: number; hidden?: boolean; column?: number; row: number; session?: EditSession; html?: string; text?: string; className?: string; coverGutter?: boolean; pixelHeight?: number; type?: any; destroy?: () => void; coverLine?: boolean; fixedWidth?: boolean; fullWidth?: boolean; screenWidth?: number; rowsAbove?: number; lenses?: any[]; } type NewLineMode = "auto" | "unix" | "windows"; interface EditSessionOptions { wrap: "off" | "free" | "printmargin" | boolean | number; wrapMethod: "code" | "text" | "auto"; indentedSoftWrap: boolean; firstLineNumber: number; useWorker: boolean; useSoftTabs: boolean; tabSize: number; navigateWithinSoftTabs: boolean; foldStyle: "markbegin" | "markbeginend" | "manual"; overwrite: boolean; newLineMode: NewLineMode; mode: string; } interface VirtualRendererOptions { animatedScroll: boolean; showInvisibles: boolean; showPrintMargin: boolean; printMarginColumn: number; printMargin: boolean | number; showGutter: boolean; fadeFoldWidgets: boolean; showFoldWidgets: boolean; showLineNumbers: boolean; displayIndentGuides: boolean; highlightIndentGuides: boolean; highlightGutterLine: boolean; hScrollBarAlwaysVisible: boolean; vScrollBarAlwaysVisible: boolean; fontSize: string | number; fontFamily: string; maxLines: number; minLines: number; scrollPastEnd: number; fixedWidthGutter: boolean; customScrollbar: boolean; theme: string; hasCssTransforms: boolean; maxPixelHeight: number; useSvgGutterIcons: boolean; showFoldedAnnotations: boolean; useResizeObserver: boolean; } interface MouseHandlerOptions { scrollSpeed: number; dragDelay: number; dragEnabled: boolean; focusTimeout: number; tooltipFollowsMouse: boolean; } interface EditorOptions extends EditSessionOptions, MouseHandlerOptions, VirtualRendererOptions { selectionStyle: "fullLine" | "screenLine" | "text" | "line"; highlightActiveLine: boolean; highlightSelectedWord: boolean; readOnly: boolean; copyWithEmptySelection: boolean; cursorStyle: "ace" | "slim" | "smooth" | "wide"; mergeUndoDeltas: true | false | "always"; behavioursEnabled: boolean; wrapBehavioursEnabled: boolean; enableAutoIndent: boolean; enableBasicAutocompletion: boolean | Completer[]; enableLiveAutocompletion: boolean | Completer[]; liveAutocompletionDelay: number; liveAutocompletionThreshold: number; enableSnippets: boolean; autoScrollEditorIntoView: boolean; keyboardHandler: string | null; placeholder: string; value: string; session: EditSession; relativeLineNumbers: boolean; enableMultiselect: boolean; enableKeyboardAccessibility: boolean; enableCodeLens: boolean; textInputAriaLabel: string; enableMobileMenu: boolean; } interface EventsBase { [key: string]: any; } interface EditSessionEvents { /** * Emitted when the document changes. */ "change": (delta: Delta) => void; /** * Emitted when the tab size changes, via [[EditSession.setTabSize]]. */ "changeTabSize": () => void; /** * Emitted when the ability to overwrite text changes, via [[EditSession.setOverwrite]]. */ "changeOverwrite": (overwrite: boolean) => void; /** * Emitted when the gutter changes, either by setting or removing breakpoints, or when the gutter decorations change. */ "changeBreakpoint": (e?: { row?: number; breakpoint?: boolean; }) => void; /** * Emitted when a front marker changes. */ "changeFrontMarker": () => void; /** * Emitted when a back marker changes. */ "changeBackMarker": () => void; /** * Emitted when an annotation changes, like through [[EditSession.setAnnotations]]. */ "changeAnnotation": (e: {}) => void; /** * Emitted when a background tokenizer asynchronously processes new rows. */ "tokenizerUpdate": (e: { data: { first: number; last: number; }; }) => void; /** * Emitted when the current mode changes. */ "changeMode": (e: any) => void; /** * Emitted when the wrap mode changes. */ "changeWrapMode": (e: any) => void; /** * Emitted when the wrapping limit changes. */ "changeWrapLimit": (e: any) => void; /** * Emitted when a code fold is added or removed. */ "changeFold": (e: any, session?: EditSession) => void; /** * Emitted when the scroll top changes. * @param scrollTop The new scroll top value **/ "changeScrollTop": (scrollTop: number) => void; /** * Emitted when the scroll left changes. * @param scrollLeft The new scroll left value **/ "changeScrollLeft": (scrollLeft: number) => void; "changeEditor": (e: { editor?: Editor; oldEditor?: Editor; }) => void; "changeSelection": () => void; "startOperation": (op?: { command?: { name?: string; }; args?: any; }) => void; "endOperation": (op?: any) => void; "beforeEndOperation": () => void; } interface EditorEvents { "change": (delta: Delta) => void; "changeSelection": () => void; "input": () => void; /** * Emitted whenever the [[EditSession]] changes. * @param e An object with two properties, `oldSession` and `session`, that represent the old and new [[EditSession]]s. **/ "changeSession": (e: { oldSession: EditSession; session: EditSession; }) => void; "blur": (e: any) => void; "mousedown": (e: MouseEvent) => void; "mousemove": (e: MouseEvent & { scrollTop?: any; }, editor?: Editor) => void; "changeStatus": (e: any) => void; "keyboardActivity": (e: any) => void; "mousewheel": (e: MouseEvent) => void; "mouseup": (e: MouseEvent) => void; "beforeEndOperation": (e: any) => void; "nativecontextmenu": (e: any) => void; "destroy": (e: any) => void; "focus": (e?: any) => void; /** * Emitted when text is copied. * @param text The copied text **/ "copy": (e: { text: string; }) => void; /** * Emitted when text is pasted. **/ "paste": (e: { text: string; event?: ClipboardEvent; }) => void; /** * Emitted when the selection style changes, via [[Editor.setSelectionStyle]]. * @param data Contains one property, `data`, which indicates the new selection style **/ "changeSelectionStyle": (data: "fullLine" | "screenLine" | "text" | "line") => void; "changeMode": (e: { mode?: Ace.SyntaxMode; oldMode?: Ace.SyntaxMode; }) => void; //from searchbox extension "findSearchBox": (e: { match: boolean; }) => void; //from code_lens extension "codeLensClick": (e: any) => void; "select": () => void; "gutterkeydown": (e: GutterKeyboardEvent) => void; "gutterclick": (e: MouseEvent) => void; "showGutterTooltip": (e: GutterTooltip) => void; "hideGutterTooltip": (e: GutterTooltip) => void; "compositionStart": () => void; } interface AcePopupEvents { "click": (e: MouseEvent) => void; "dblclick": (e: MouseEvent) => void; "tripleclick": (e: MouseEvent) => void; "quadclick": (e: MouseEvent) => void; "show": () => void; "hide": () => void; "select": (hide: boolean) => void; "changeHoverMarker": (e: any) => void; } interface DocumentEvents { /** * Fires whenever the document changes. * Several methods trigger different `"change"` events. Below is a list of each action type, followed by each property that's also available: * * `"insert"` * * `range`: the [[Range]] of the change within the document * * `lines`: the lines being added * * `"remove"` * * `range`: the [[Range]] of the change within the document * * `lines`: the lines being removed * **/ "change": (e: Delta) => void; "changeNewLineMode": () => void; } interface AnchorEvents { /** * Fires whenever the anchor position changes. * Both of these objects have a `row` and `column` property corresponding to the position. * Events that can trigger this function include [[Anchor.setPosition `setPosition()`]]. * @param {Object} e An object containing information about the anchor position. It has two properties: * - `old`: An object describing the old Anchor position * - `value`: An object describing the new Anchor position **/ "change": (e: { old: Point; value: Point; }) => void; } interface BackgroundTokenizerEvents { /** * Fires whenever the background tokeniziers between a range of rows are going to be updated. * @param e An object containing two properties, `first` and `last`, which indicate the rows of the region being updated. **/ "update": (e: { data: { first: number; last: number; }; }) => void; } interface SelectionEvents { /** * Emitted when the cursor position changes. **/ "changeCursor": () => void; /** * Emitted when the cursor selection changes. **/ "changeSelection": () => void; } interface MultiSelectionEvents extends SelectionEvents { "multiSelect": () => void; "addRange": (e: { range: Range; }) => void; "removeRange": (e: { ranges: Range[]; }) => void; "singleSelect": () => void; } interface PlaceHolderEvents { "cursorEnter": (e: any) => void; "cursorLeave": (e: any) => void; } interface GutterEvents { "changeGutterWidth": (width: number) => void; "afterRender": () => void; } interface TextEvents { "changeCharacterSize": (e: any) => void; } interface VirtualRendererEvents { "afterRender": (e?: any, renderer?: VirtualRenderer) => void; "beforeRender": (e: any, renderer?: VirtualRenderer) => void; "themeLoaded": (e: { theme: string | Theme; }) => void; "themeChange": (e: { theme: string | Theme; }) => void; "scrollbarVisibilityChanged": () => void; "changeCharacterSize": (e: any) => void; "resize": (e?: any) => void; "autosize": () => void; } export class EventEmitter<T extends { [K in keyof T]: (...args: any[]) => any; }> { once<K extends keyof T>(name: K, callback: T[K]): void; setDefaultHandler(name: string, callback: Function): void; removeDefaultHandler(name: string, callback: Function): void; on<K extends keyof T>(name: K, callback: T[K], capturing?: boolean): T[K]; addEventListener<K extends keyof T>(name: K, callback: T[K], capturing?: boolean): T[K]; off<K extends keyof T>(name: K, callback: T[K]): void; removeListener<K extends keyof T>(name: K, callback: T[K]): void; removeEventListener<K extends keyof T>(name: K, callback: T[K]): void; removeAllListeners(name?: string): void; } interface SearchOptions { /**The string or regular expression you're looking for*/ needle: string | RegExp; preventScroll: boolean; /**Whether to search backwards from where cursor currently is*/ backwards: boolean; /**The starting [[Range]] or cursor position to begin the search*/ start: Range; /**Whether or not to include the current line in the search*/ skipCurrent: boolean; /**The [[Range]] to search within. Set this to `null` for the whole document*/ range: Range | null; preserveCase: boolean; /**Whether the search is a regular expression or not*/ regExp: boolean; /**Whether the search matches only on whole words*/ wholeWord: boolean; /**Whether the search ought to be case-sensitive*/ caseSensitive: boolean; /**Whether to wrap the search back to the beginning when it hits the end*/ wrap: boolean; re: any; } interface Point { row: number; column: number; } type Position = Point; interface Delta { action: "insert" | "remove"; start: Point; end: Point; lines: string[]; id?: number; folds?: Fold[]; } interface Annotation { row: number; column: number; text: string; type: string; } export interface MarkerGroupItem { range: Range; className: string; } type MarkerGroup = import("ace-builds-internal/marker_group").MarkerGroup; export interface Command { name?: string; bindKey?: string | { mac?: string; win?: string; }; readOnly?: boolean; exec?: (editor?: Editor | any, args?: any) => void; isAvailable?: (editor: Editor) => boolean; description?: string; multiSelectAction?: "forEach" | "forEachLine" | Function; scrollIntoView?: true | "cursor" | "center" | "selectionPart" | "animate" | "selection" | "none"; aceCommandGroup?: string; passEvent?: boolean; level?: number; action?: string; } type CommandLike = Command | ((editor: Editor) => void) | ((sb: SearchBox) => void); type KeyboardHandler = Partial<import("ace-builds-internal/keyboard/hash_handler").HashHandler> & { attach?: (editor: Editor) => void; detach?: (editor: Editor) => void; getStatusText?: (editor?: any, data?: any) => string; }; export interface MarkerLike { range?: Range; type: string; renderer?: MarkerRenderer; clazz: string; inFront?: boolean; id?: number; update?: (html: string[], // TODO maybe define Marker class marker: any, session: EditSession, config: any) => void; [key: string]: any; } type MarkerRenderer = (html: string[], range: Range, left: number, top: number, config: any) => void; interface Token { type: string; value: string; index?: number; start?: number; } type BaseCompletion = import("ace-builds-internal/autocomplete").BaseCompletion; type SnippetCompletion = import("ace-builds-internal/autocomplete").SnippetCompletion; type ValueCompletion = import("ace-builds-internal/autocomplete").ValueCompletion; type Completion = import("ace-builds-internal/autocomplete").Completion; type HighlightRule = ({ defaultToken: string; } | { include: string; } | { todo: string; } | { token: string | string[] | ((value: string) => string); regex: string | RegExp; next?: string | (() => void); push?: string; comment?: string; caseInsensitive?: boolean; nextState?: string; }) & { [key: string]: any; }; type HighlightRulesMap = Record<string, HighlightRule[]>; type KeywordMapper = (keyword: string) => string; interface HighlightRules { addRules(rules: HighlightRulesMap, prefix?: string): void; getRules(): HighlightRulesMap; embedRules(rules: (new () => HighlightRules) | HighlightRulesMap, prefix: string, escapeRules?: boolean, append?: boolean): void; getEmbeds(): string[]; normalizeRules(): void; createKeywordMapper(map: Record<string, string>, defaultToken?: string, ignoreCase?: boolean, splitChar?: string): KeywordMapper; } type FoldWidget = "start" | "end" | ""; interface FoldMode { foldingStartMarker: RegExp; foldingStopMarker?: RegExp; getFoldWidget(session: EditSession, foldStyle: string, row: number): FoldWidget; getFoldWidgetRange(session: EditSession, foldStyle: string, row: number): Range | undefined; indentationBlock(session: EditSession, row: number, column?: number): Range | undefined; openingBracketBlock(session: EditSession, bracket: string, row: number, column: number, typeRe?: RegExp): Range | undefined; closingBracketBlock(session: EditSession, bracket: string, row: number, column: number, typeRe?: RegExp): Range | undefined; } type BehaviorAction = (state: string | string[], action: string, editor: Editor, session: EditSession, text: string | Range) => ({ text: string; selection: number[]; } | Range) & { [key: string]: any; } | undefined; type BehaviorMap = Record<string, Record<string, BehaviorAction>>; interface Behaviour { add(name: string, action: string, callback: BehaviorAction): void; addBehaviours(behaviours: BehaviorMap): void; remove(name: string): void; inherit(mode: SyntaxMode | (new () => SyntaxMode), filter: string[]): void; getBehaviours(filter?: string[]): BehaviorMap; } interface Outdent { checkOutdent(line: string, input: string): boolean; autoOutdent(doc: Document, row: number): number | undefined; } interface SyntaxMode { HighlightRules: { new(config?: any): HighlightRules; }; //TODO: fix this foldingRules?: FoldMode; /** * characters that indicate the start of a line comment */ lineCommentStart?: string; /** * characters that indicate the start and end of a block comment */ blockComment?: { start: string; end: string; }; tokenRe?: RegExp; nonTokenRe?: RegExp; completionKeywords: string[]; transformAction: BehaviorAction; path?: string; getTokenizer(): Tokenizer; toggleCommentLines(state: string | string[], session: EditSession, startRow: number, endRow: number): void; toggleBlockComment(state: string | string[], session: EditSession, range: Range, cursor: Point): void; getNextLineIndent(state: string | string[], line: string, tab: string): string; checkOutdent(state: string | string[], line: string, input: string): boolean; autoOutdent(state: string | string[], doc: EditSession, row: number): void; // TODO implement WorkerClient types createWorker(session: EditSession): any; createModeDelegates(mapping: { [key: string]: string; }): void; getKeywords(append?: boolean): Array<string | RegExp>; getCompletions(state: string | string[], session: EditSession, pos: Point, prefix: string): Completion[]; } interface OptionsBase { [key: string]: any; } class OptionsProvider<T> { setOptions(optList: Partial<T>): void; getOptions(optionNames?: Array<keyof T> | Partial<T>): Partial<T>; setOption<K extends keyof T>(name: K, value: T[K]): void; getOption<K extends keyof T>(name: K): T[K]; } type KeyBinding = import("ace-builds-internal/keyboard/keybinding").KeyBinding; interface CommandMap { [name: string]: Command; } type execEventHandler = (obj: { editor: Editor; command: Command; args: any[]; }) => void; interface CommandManagerEvents { "exec": execEventHandler; "afterExec": execEventHandler; "commandUnavailable": execEventHandler; } type CommandManager = import("ace-builds-internal/commands/command_manager").CommandManager; interface SavedSelection { start: Point; end: Point; isBackwards: boolean; } var Selection: { new(session: EditSession): Selection; }; interface TextInput { resetSelection(): void; setAriaOption(options?: { activeDescendant: string; role: string; setLabel: any; }): void; } type CompleterCallback = (error: any, completions: Completion[]) => void; interface Completer { identifierRegexps?: Array<RegExp>; getCompletions(editor: Editor, session: EditSession, position: Point, prefix: string, callback: CompleterCallback): void; getDocTooltip?(item: Completion): void | string | Completion; onSeen?: (editor: Ace.Editor, completion: Completion) => void; onInsert?: (editor: Ace.Editor, completion: Completion) => void; cancel?(): void; id?: string; triggerCharacters?: string[]; hideInlinePreview?: boolean; insertMatch?: (editor: Editor, data: Completion) => void; } interface CompletionOptions { matches?: Completion[]; } type CompletionProviderOptions = { exactMatch?: boolean; ignoreCaption?: boolean; }; type GatherCompletionRecord = { prefix: string; matches: Completion[]; finished: boolean; }; type CompletionCallbackFunction = (err: Error | undefined, data: GatherCompletionRecord) => void; type CompletionProviderCallback = (this: import("ace-builds-internal/autocomplete").Autocomplete, err: Error | undefined, completions: import("ace-builds-internal/autocomplete").FilteredList, finished: boolean) => void; type AcePopupNavigation = "up" | "down" | "start" | "end"; interface EditorMultiSelectProperties { inMultiSelectMode?: boolean; /** * Updates the cursor and marker layers. **/ updateSelectionMarkers: () => void; /** * Adds the selection and cursor. * @param orientedRange A range containing a cursor **/ addSelectionMarker: (orientedRange: Ace.Range & { marker?: any; }) => Ace.Range & { marker?: any; }; /** * Removes the selection marker. * @param range The selection range added with [[Editor.addSelectionMarker `addSelectionMarker()`]]. **/ removeSelectionMarker: (range: Ace.Range & { marker?: any; }) => void; removeSelectionMarkers: (ranges: (Ace.Range & { marker?: any; })[]) => void; /** * Executes a command for each selection range. * @param cmd The command to execute * @param [args] Any arguments for the command **/ forEachSelection: (cmd: Object, args?: string, options?: Object) => void; /** * Removes all the selections except the last added one. **/ exitMultiSelectMode: () => void; getSelectedText: () => string; /** * Finds and selects all the occurrences of `needle`. * @param needle The text to find * @param options The search options * @param additive keeps * @returns {Number} The cumulative count of all found matches **/ findAll: (needle?: string, options?: Partial<Ace.SearchOptions>, additive?: boolean) => number; /** * Adds a cursor above or below the active cursor. * @param dir The direction of lines to select: -1 for up, 1 for down * @param [skip] If `true`, removes the active selection range */ selectMoreLines: (dir: number, skip?: boolean) => void; /** * Transposes the selected ranges. * @param {Number} dir The direction to rotate selections **/ transposeSelections: (dir: number) => void; /** * Finds the next occurrence of text in an active selection and adds it to the selections. * @param {Number} dir The direction of lines to select: -1 for up, 1 for down * @param {Boolean} [skip] If `true`, removes the active selection range **/ selectMore: (dir: number, skip?: boolean, stopAtFirst?: boolean) => void; /** * Aligns the cursors or selected text. **/ alignCursors: () => void; multiSelect?: any; } interface CodeLenseProvider { provideCodeLenses: (session: EditSession, callback: (err: any, payload: CodeLense[]) => void) => void; } interface CodeLense { start: Point; command: any; } interface CodeLenseEditorExtension { codeLensProviders?: CodeLenseProvider[]; } interface ElasticTabstopsEditorExtension { elasticTabstops?: import("ace-builds/src-noconflict/ext-elastic_tabstops_lite").ElasticTabstopsLite; } interface TextareaEditorExtension { setDisplaySettings?: (settings: any) => void; } interface PromptEditorExtension { cmdLine?: Editor; } interface OptionsEditorExtension { } interface MultiSelectProperties { ranges: Ace.Range[] | null; rangeList: Ace.RangeList | null; /** * Adds a range to a selection by entering multiselect mode, if necessary. * @param {Ace.Range} range The new range to add * @param {Boolean} [$blockChangeEvents] Whether or not to block changing events **/ addRange(range: Ace.Range, $blockChangeEvents?: boolean): any; inMultiSelectMode: boolean; toSingleRange(range?: Ace.Range): void; /** * Removes a Range containing pos (if it exists). * @param {Ace.Point} pos The position to remove, as a `{row, column}` object **/ substractPoint(pos: Ace.Point): any; /** * Merges overlapping ranges ensuring consistency after changes **/ mergeOverlappingRanges(): void; rangeCount: number; /** * Returns a concatenation of all the ranges. **/ getAllRanges(): Ace.Range[]; /** * Splits all the ranges into lines. **/ splitIntoLines(): void; joinSelections(): void; toggleBlockSelection(): void; /** * * Gets list of ranges composing rectangular block on the screen * * @param {Ace.ScreenCoordinates} screenCursor The cursor to use * @param {Ace.ScreenCoordinates} screenAnchor The anchor to use * @param {Boolean} [includeEmptyLines] If true, this includes ranges inside the block which are empty due to clipping **/ rectangularRangeBlock(screenCursor: Ace.ScreenCoordinates, screenAnchor: Ace.ScreenCoordinates, includeEmptyLines?: boolean): Ace.Range[]; index?: number; } type AcePopupEventsCombined = Ace.EditorEvents & Ace.AcePopupEvents; type AcePopupWithEditor = Ace.EventEmitter<AcePopupEventsCombined> & Ace.Editor; type InlineAutocompleteAction = "prev" | "next" | "first" | "last"; type TooltipCommandFunction<T> = (editor: Ace.Editor) => T; export interface TooltipCommand extends Ace.Command { enabled?: TooltipCommandFunction<boolean> | boolean; getValue?: TooltipCommandFunction<any>; type: "button" | "text" | "checkbox"; iconCssClass?: string; cssClass?: string; } export type CommandBarTooltip = import("ace-builds/src-noconflict/ext-command_bar").CommandBarTooltip; export type TokenizeResult = Array<Array<{ className?: string; value: string; }>>; export interface StaticHighlightOptions { mode?: string | SyntaxMode; theme?: string | Theme; trim?: boolean; firstLineNumber?: number; showGutter?: boolean; } export interface Operation { command: { name?: string; }; args: any; selectionBefore?: Range | Range[]; selectionAfter?: Range | Range[]; docChanged?: boolean; selectionChanged?: boolean; } export interface CommandBarEvents { "hide": () => void; "show": () => void; "alwaysShow": (e: boolean) => void; } export interface FontMetricsEvents { "changeCharacterSize": (e: { data: { height: number; width: number; }; }) => void; } export interface OptionPanelEvents { "setOption": (e: { name: string; value: any; }) => void; } export interface ScrollbarEvents { "scroll": (e: { data: number; }) => void; } } export const config: typeof import("ace-builds-internal/config"); export function edit(el?: string | (HTMLElement & { env?: any; value?: any; }) | null, options?: any): Editor; export function createEditSession(text: import("ace-builds-internal/document").Document | string, mode?: import("ace-builds").Ace.SyntaxMode): EditSession; import { Editor } from "ace-builds-internal/editor"; import { EditSession } from "ace-builds-internal/edit_session"; import { Range } from "ace-builds-internal/range"; import { UndoManager } from "ace-builds-internal/undomanager"; import { VirtualRenderer as Renderer } from "ace-builds-internal/virtual_renderer"; export var version: "1.40.1"; export { Range, Editor, EditSession, UndoManager, Renderer as VirtualRenderer }; } declare module 'ace-builds/webpack-resolver'; declare module 'ace-builds/esm-resolver'; declare module 'ace-builds/src-noconflict/ace'; declare module 'ace-builds/src-noconflict/keybinding-emacs'; declare module 'ace-builds/src-noconflict/keybinding-sublime'; declare module 'ace-builds/src-noconflict/keybinding-vim'; declare module 'ace-builds/src-noconflict/keybinding-vscode';