ace-builds
Version:
Ace (Ajax.org Cloud9 Editor)
1,022 lines (1,019 loc) • 44.3 kB
TypeScript
/* 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';