950 lines
34 KiB
TypeScript
950 lines
34 KiB
TypeScript
/// <reference path="./ace-modules.d.ts" />
|
|
export namespace Ace {
|
|
export type NewLineMode = 'auto' | 'unix' | 'windows';
|
|
|
|
export interface Anchor extends EventEmitter {
|
|
getPosition(): Position;
|
|
getDocument(): Document;
|
|
setPosition(row: number, column: number, noClip?: boolean): void;
|
|
detach(): void;
|
|
attach(doc: Document): void;
|
|
}
|
|
|
|
export interface Document extends EventEmitter {
|
|
setValue(text: string): void;
|
|
getValue(): string;
|
|
createAnchor(row: number, column: number): Anchor;
|
|
getNewLineCharacter(): string;
|
|
setNewLineMode(newLineMode: NewLineMode): void;
|
|
getNewLineMode(): NewLineMode;
|
|
isNewLine(text: string): boolean;
|
|
getLine(row: number): string;
|
|
getLines(firstRow: number, lastRow: number): string[];
|
|
getAllLines(): string[];
|
|
getLength(): number;
|
|
getTextRange(range: Range): string;
|
|
getLinesForRange(range: Range): string[];
|
|
insert(position: Position, text: string): Position;
|
|
insert(position: {row: number, column: number}, text: string): Position;
|
|
insertInLine(position: Position, text: string): Position;
|
|
insertNewLine(position: Point): Point;
|
|
clippedPos(row: number, column: number): Point;
|
|
clonePos(pos: Point): Point;
|
|
pos(row: number, column: number): Point;
|
|
insertFullLines(row: number, lines: string[]): void;
|
|
insertMergedLines(position: Position, lines: string[]): Point;
|
|
remove(range: Range): Position;
|
|
removeInLine(row: number, startColumn: number, endColumn: number): Position;
|
|
removeFullLines(firstRow: number, lastRow: number): string[];
|
|
removeNewLine(row: number): void;
|
|
replace(range: Range, text: string): Position;
|
|
applyDeltas(deltas: Delta[]): void;
|
|
revertDeltas(deltas: Delta[]): void;
|
|
applyDelta(delta: Delta, doNotValidate?: boolean): void;
|
|
revertDelta(delta: Delta): void;
|
|
indexToPosition(index: number, startRow: number): Position;
|
|
positionToIndex(pos: Position, startRow?: number): number;
|
|
}
|
|
|
|
export interface FoldLine {
|
|
folds: Fold[];
|
|
range: Range;
|
|
start: Point;
|
|
end: Point;
|
|
|
|
shiftRow(shift: number): void;
|
|
addFold(fold: Fold): void;
|
|
containsRow(row: number): boolean;
|
|
walk(callback: Function, endRow?: number, endColumn?: number): void;
|
|
getNextFoldTo(row: number, column: number): null | { fold: Fold, kind: string };
|
|
addRemoveChars(row: number, column: number, len: number): void;
|
|
split(row: number, column: number): FoldLine;
|
|
merge(foldLineNext: FoldLine): void;
|
|
idxToPosition(idx: number): Point;
|
|
}
|
|
|
|
export interface Fold {
|
|
range: Range;
|
|
start: Point;
|
|
end: Point;
|
|
foldLine?: FoldLine;
|
|
sameRow: boolean;
|
|
subFolds: Fold[];
|
|
|
|
setFoldLine(foldLine: FoldLine): void;
|
|
clone(): Fold;
|
|
addSubFold(fold: Fold): Fold;
|
|
restoreRange(range: Range): void;
|
|
}
|
|
|
|
interface Folding {
|
|
getFoldAt(row: number, column: number, side: number): Fold;
|
|
getFoldsInRange(range: Range): Fold[];
|
|
getFoldsInRangeList(ranges: Range[]): Fold[];
|
|
getAllFolds(): Fold[];
|
|
getFoldStringAt(row: number,
|
|
column: number,
|
|
trim?: number,
|
|
foldLine?: FoldLine): string | null;
|
|
getFoldLine(docRow: number, startFoldLine?: FoldLine): FoldLine | null;
|
|
getNextFoldLine(docRow: number, startFoldLine?: FoldLine): FoldLine | null;
|
|
getFoldedRowCount(first: number, last: number): number;
|
|
addFold(placeholder: string | Fold, range?: Range): Fold;
|
|
addFolds(folds: Fold[]): void;
|
|
removeFold(fold: Fold): void;
|
|
removeFolds(folds: Fold[]): void;
|
|
expandFold(fold: Fold): void;
|
|
expandFolds(folds: Fold[]): void;
|
|
unfold(location: null | number | Point | Range,
|
|
expandInner?: boolean): Fold[] | undefined;
|
|
isRowFolded(docRow: number, startFoldRow?: FoldLine): boolean;
|
|
getFoldRowEnd(docRow: number, startFoldRow?: FoldLine): number;
|
|
getFoldRowStart(docRow: number, startFoldRow?: FoldLine): number;
|
|
getFoldDisplayLine(foldLine: 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): Range | undefined;
|
|
foldAll(startRow?: number, endRow?: number, depth?: number): void;
|
|
setFoldStyle(style: string): void;
|
|
getParentFoldRangeData(row: number, ignoreCurrent?: boolean): {
|
|
range?: Range,
|
|
firstRange: Range
|
|
};
|
|
toggleFoldWidget(toggleParent?: boolean): void;
|
|
updateFoldWidgets(delta: Delta): void;
|
|
}
|
|
|
|
export interface Range {
|
|
start: Point;
|
|
end: Point;
|
|
|
|
isEqual(range: Range): boolean;
|
|
toString(): string;
|
|
contains(row: number, column: number): boolean;
|
|
compareRange(range: Range): number;
|
|
comparePoint(p: Point): number;
|
|
containsRange(range: Range): boolean;
|
|
intersects(range: Range): boolean;
|
|
isEnd(row: number, column: number): boolean;
|
|
isStart(row: number, column: number): boolean;
|
|
setStart(row: number, column: number): void;
|
|
setEnd(row: number, column: number): void;
|
|
inside(row: number, column: number): boolean;
|
|
insideStart(row: number, column: number): boolean;
|
|
insideEnd(row: number, column: number): boolean;
|
|
compare(row: number, column: number): number;
|
|
compareStart(row: number, column: number): number;
|
|
compareEnd(row: number, column: number): number;
|
|
compareInside(row: number, column: number): number;
|
|
clipRows(firstRow: number, lastRow: number): Range;
|
|
extend(row: number, column: number): Range;
|
|
isEmpty(): boolean;
|
|
isMultiLine(): boolean;
|
|
clone(): Range;
|
|
collapseRows(): Range;
|
|
toScreenRange(session: EditSession): Range;
|
|
moveBy(row: number, column: number): void;
|
|
}
|
|
|
|
export 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;
|
|
}
|
|
|
|
export 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: number;
|
|
fontFamily: string;
|
|
maxLines: number;
|
|
minLines: number;
|
|
scrollPastEnd: boolean;
|
|
fixedWidthGutter: boolean;
|
|
customScrollbar: boolean;
|
|
theme: string;
|
|
hasCssTransforms: boolean;
|
|
maxPixelHeight: number;
|
|
}
|
|
|
|
export interface MouseHandlerOptions {
|
|
scrollSpeed: number;
|
|
dragDelay: number;
|
|
dragEnabled: boolean;
|
|
focusTimeout: number;
|
|
tooltipFollowsMouse: boolean;
|
|
}
|
|
|
|
export interface EditorOptions extends EditSessionOptions,
|
|
MouseHandlerOptions,
|
|
VirtualRendererOptions {
|
|
selectionStyle: string;
|
|
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[],
|
|
enableSnippets: boolean,
|
|
autoScrollEditorIntoView: boolean;
|
|
keyboardHandler: string | null;
|
|
placeholder: string;
|
|
value: string;
|
|
session: EditSession;
|
|
relativeLineNumbers: boolean;
|
|
}
|
|
|
|
export interface SearchOptions {
|
|
needle: string | RegExp;
|
|
preventScroll: boolean;
|
|
backwards: boolean;
|
|
start: Range;
|
|
skipCurrent: boolean;
|
|
range: Range;
|
|
preserveCase: boolean;
|
|
regExp: boolean;
|
|
wholeWord: boolean;
|
|
caseSensitive: boolean;
|
|
wrap: boolean;
|
|
}
|
|
|
|
export interface EventEmitter {
|
|
once(name: string, callback: Function): void;
|