ace.d.ts 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854
  1. /// <reference path="./ace-modules.d.ts" />
  2. export namespace Ace {
  3. export type NewLineMode = 'auto' | 'unix' | 'windows';
  4. export interface Anchor extends EventEmitter {
  5. getPosition(): Point;
  6. getDocument(): Document;
  7. setPosition(row: number, column: number, noClip?: boolean): void;
  8. detach(): void;
  9. attach(doc: Document): void;
  10. }
  11. export interface Document extends EventEmitter {
  12. setValue(text: string): void;
  13. getValue(): string;
  14. createAnchor(row: number, column: number): Anchor;
  15. getNewLineCharacter(): string;
  16. setNewLineMode(newLineMode: NewLineMode): void;
  17. getNewLineMode(): NewLineMode;
  18. isNewLine(text: string): boolean;
  19. getLine(row: number): string;
  20. getLines(firstRow: number, lastRow: number): string[];
  21. getAllLines(): string[];
  22. getTextRange(range: Range): string;
  23. getLinesForRange(range: Range): string[];
  24. insert(position: Point, text: string): Point;
  25. insertInLine(position: Point, text: string): Point;
  26. clippedPos(row: number, column: number): Point;
  27. clonePos(pos: Point): Point;
  28. pos(row: number, column: number): Point;
  29. insertFullLines(row: number, lines: string[]): void;
  30. insertMergedLines(position: Point, lines: string[]): Point;
  31. remove(range: Range): Point;
  32. removeInLine(row: number, startColumn: number, endColumn: number): Point;
  33. removeFullLines(firstRow: number, lastRow: number): string[];
  34. removeNewLine(row: number): void;
  35. replace(range: Range, text: string): Point;
  36. applyDeltas(deltas: Delta[]): void;
  37. revertDeltas(deltas: Delta[]): void;
  38. applyDelta(delta: Delta, doNotValidate?: boolean): void;
  39. revertDelta(delta: Delta): void;
  40. indexToPosition(index: number, startRow: number): Point;
  41. positionToIndex(pos: Point, startRow?: number): number;
  42. }
  43. export interface FoldLine {
  44. folds: Fold[];
  45. range: Range;
  46. start: Point;
  47. end: Point;
  48. shiftRow(shift: number): void;
  49. addFold(fold: Fold): void;
  50. containsRow(row: number): boolean;
  51. walk(callback: Function, endRow?: number, endColumn?: number): void;
  52. getNextFoldTo(row: number, column: number): null | { fold: Fold, kind: string };
  53. addRemoveChars(row: number, column: number, len: number): void;
  54. split(row: number, column: number): FoldLine;
  55. merge(foldLineNext: FoldLine): void;
  56. idxToPosition(idx: number): Point;
  57. }
  58. export interface Fold {
  59. range: Range;
  60. start: Point;
  61. end: Point;
  62. foldLine?: FoldLine;
  63. sameRow: boolean;
  64. subFolds: Fold[];
  65. setFoldLine(foldLine: FoldLine): void;
  66. clone(): Fold;
  67. addSubFold(fold: Fold): Fold;
  68. restoreRange(range: Range): void;
  69. }
  70. interface Folding {
  71. getFoldAt(row: number, column: number, side: number): Fold;
  72. getFoldsInRange(range: Range): Fold[];
  73. getFoldsInRangeList(ranges: Range[]): Fold[];
  74. getAllFolds(): Fold[];
  75. getFoldStringAt(row: number,
  76. column: number,
  77. trim?: number,
  78. foldLine?: FoldLine): string | null;
  79. getFoldLine(docRow: number, startFoldLine?: FoldLine): FoldLine | null;
  80. getNextFoldLine(docRow: number, startFoldLine?: FoldLine): FoldLine | null;
  81. getFoldedRowCount(first: number, last: number): number;
  82. addFold(placeholder: string | Fold, range?: Range): Fold;
  83. addFolds(folds: Fold[]): void;
  84. removeFold(fold: Fold): void;
  85. removeFolds(folds: Fold[]): void;
  86. expandFold(fold: Fold): void;
  87. expandFolds(folds: Fold[]): void;
  88. unfold(location: null | number | Point | Range,
  89. expandInner?: boolean): Fold[] | undefined;
  90. isRowFolded(docRow: number, startFoldRow?: FoldLine): boolean;
  91. getFoldRowEnd(docRow: number, startFoldRow?: FoldLine): number;
  92. getFoldRowStart(docRow: number, startFoldRow?: FoldLine): number;
  93. getFoldDisplayLine(foldLine: FoldLine,
  94. endRow: number | null,
  95. endColumn: number | null,
  96. startRow: number | null,
  97. startColumn: number | null): string;
  98. getDisplayLine(row: number,
  99. endColumn: number | null,
  100. startRow: number | null,
  101. startColumn: number | null): string;
  102. toggleFold(tryToUnfold?: boolean): void;
  103. getCommentFoldRange(row: number,
  104. column: number,
  105. dir: number): Range | undefined;
  106. foldAll(startRow?: number, endRow?: number, depth?: number): void;
  107. setFoldStyle(style: string): void;
  108. getParentFoldRangeData(row: number, ignoreCurrent?: boolean): {
  109. range?: Range,
  110. firstRange: Range
  111. };
  112. toggleFoldWidget(toggleParent?: boolean): void;
  113. updateFoldWidgets(delta: Delta): void;
  114. }
  115. export interface Range {
  116. start: Point;
  117. end: Point;
  118. isEqual(range: Range): boolean;
  119. toString(): string;
  120. contains(row: number, column: number): boolean;
  121. compareRange(range: Range): number;
  122. comparePoint(p: Point): number;
  123. containsRange(range: Range): boolean;
  124. intersects(range: Range): boolean;
  125. isEnd(row: number, column: number): boolean;
  126. isStart(row: number, column: number): boolean;
  127. setStart(row: number, column: number): void;
  128. setEnd(row: number, column: number): void;
  129. inside(row: number, column: number): boolean;
  130. insideStart(row: number, column: number): boolean;
  131. insideEnd(row: number, column: number): boolean;
  132. compare(row: number, column: number): number;
  133. compareStart(row: number, column: number): number;
  134. compareEnd(row: number, column: number): number;
  135. compareInside(row: number, column: number): number;
  136. clipRows(firstRow: number, lastRow: number): Range;
  137. extend(row: number, column: number): Range;
  138. isEmpty(): boolean;
  139. isMultiLine(): boolean;
  140. clone(): Range;
  141. collapseRows(): Range;
  142. toScreenRange(session: EditSession): Range;
  143. moveBy(row: number, column: number): void;
  144. }
  145. export interface EditSessionOptions {
  146. wrap: string | number;
  147. wrapMethod: 'code' | 'text' | 'auto';
  148. indentedSoftWrap: boolean;
  149. firstLineNumber: number;
  150. useWorker: boolean;
  151. useSoftTabs: boolean;
  152. tabSize: number;
  153. navigateWithinSoftTabs: boolean;
  154. foldStyle: 'markbegin' | 'markbeginend' | 'manual';
  155. overwrite: boolean;
  156. newLineMode: NewLineMode;
  157. mode: string;
  158. }
  159. export interface VirtualRendererOptions {
  160. animatedScroll: boolean;
  161. showInvisibles: boolean;
  162. showPrintMargin: boolean;
  163. printMarginColumn: number;
  164. printMargin: boolean | number;
  165. showGutter: boolean;
  166. fadeFoldWidgets: boolean;
  167. showFoldWidgets: boolean;
  168. showLineNumbers: boolean;
  169. displayIndentGuides: boolean;
  170. highlightGutterLine: boolean;
  171. hScrollBarAlwaysVisible: boolean;
  172. vScrollBarAlwaysVisible: boolean;
  173. fontSize: number;
  174. fontFamily: string;
  175. maxLines: number;
  176. minLines: number;
  177. scrollPastEnd: boolean;
  178. fixedWidthGutter: boolean;
  179. theme: string;
  180. hasCssTransforms: boolean;
  181. maxPixelHeight: number;
  182. }
  183. export interface MouseHandlerOptions {
  184. scrollSpeed: number;
  185. dragDelay: number;
  186. dragEnabled: boolean;
  187. focusTimeout: number;
  188. tooltipFollowsMouse: boolean;
  189. }
  190. export interface EditorOptions extends EditSessionOptions,
  191. MouseHandlerOptions,
  192. VirtualRendererOptions {
  193. selectionStyle: string;
  194. highlightActiveLine: boolean;
  195. highlightSelectedWord: boolean;
  196. readOnly: boolean;
  197. copyWithEmptySelection: boolean;
  198. cursorStyle: 'ace' | 'slim' | 'smooth' | 'wide';
  199. mergeUndoDeltas: true | false | 'always';
  200. behavioursEnabled: boolean;
  201. wrapBehavioursEnabled: boolean;
  202. autoScrollEditorIntoView: boolean;
  203. keyboardHandler: string;
  204. value: string;
  205. session: EditSession;
  206. }
  207. export interface SearchOptions {
  208. needle: string | RegExp;
  209. preventScroll: boolean;
  210. backwards: boolean;
  211. start: Range;
  212. skipCurrent: boolean;
  213. range: Range;
  214. preserveCase: boolean;
  215. regExp: RegExp;
  216. wholeWord: string;
  217. caseSensitive: boolean;
  218. wrap: boolean;
  219. }
  220. export interface EventEmitter {
  221. once(name: string, callback: Function): void;
  222. setDefaultHandler(name: string, callback: Function): void;
  223. removeDefaultHandler(name: string, callback: Function): void;
  224. on(name: string, callback: Function, capturing?: boolean): void;
  225. addEventListener(name: string, callback: Function, capturing?: boolean): void;
  226. off(name: string, callback: Function): void;
  227. removeListener(name: string, callback: Function): void;
  228. removeEventListener(name: string, callback: Function): void;
  229. }
  230. export interface Point {
  231. row: number;
  232. column: number;
  233. }
  234. export interface Delta {
  235. action: 'insert' | 'remove';
  236. start: Point;
  237. end: Point;
  238. lines: string[];
  239. }
  240. export interface Annotation {
  241. row?: number;
  242. column?: number;
  243. text: string;
  244. type: string;
  245. }
  246. export interface Command {
  247. name?: string;
  248. bindKey?: string | { mac?: string, win?: string };
  249. readOnly?: boolean;
  250. exec: (editor: Editor, args?: any) => void;
  251. }
  252. export type CommandLike = Command | ((editor: Editor) => void);
  253. export interface KeyboardHandler {
  254. handleKeyboard: Function;
  255. }
  256. export interface MarkerLike {
  257. range: Range;
  258. type: string;
  259. renderer?: MarkerRenderer;
  260. clazz: string;
  261. inFront: boolean;
  262. id: number;
  263. update?: (html: string[],
  264. // TODO maybe define Marker class
  265. marker: any,
  266. session: EditSession,
  267. config: any) => void;
  268. }
  269. export type MarkerRenderer = (html: string[],
  270. range: Range,
  271. left: number,
  272. top: number,
  273. config: any) => void;
  274. export interface Token {
  275. type: string;
  276. value: string;
  277. index?: number;
  278. start?: number;
  279. }
  280. export interface Completion {
  281. value: string;
  282. score: number;
  283. meta?: string;
  284. name?: string;
  285. caption?: string;
  286. }
  287. export interface Tokenizer {
  288. removeCapturingGroups(src: string): string;
  289. createSplitterRegexp(src: string, flag?: string): RegExp;
  290. getLineTokens(line: string, startState: string | string[]): Token[];
  291. }
  292. interface TokenIterator{
  293. getCurrentToken(): Token;
  294. getCurrentTokenColumn(): number;
  295. getCurrentTokenRow(): number;
  296. getCurrentTokenPosition(): Point;
  297. getCurrentTokenRange(): Range;
  298. stepBackward(): Token;
  299. stepForward(): Token;
  300. }
  301. export interface SyntaxMode {
  302. getTokenizer(): Tokenizer;
  303. toggleCommentLines(state: any,
  304. session: EditSession,
  305. startRow: number,
  306. endRow: number): void;
  307. toggleBlockComment(state: any,
  308. session: EditSession,
  309. range: Range,
  310. cursor: Point): void;
  311. getNextLineIndent(state: any, line: string, tab: string): string;
  312. checkOutdent(state: any, line: string, input: string): boolean;
  313. autoOutdent(state: any, doc: Document, row: number): void;
  314. // TODO implement WorkerClient types
  315. createWorker(session: EditSession): any;
  316. createModeDelegates(mapping: {[key: string]: string}): void;
  317. transformAction(state: string,
  318. action: string,
  319. editor: Editor,
  320. session: EditSession,
  321. text: string): any;
  322. getKeywords(append?: boolean): Array<string | RegExp>;
  323. getCompletions(state: string,
  324. session: EditSession,
  325. pos: Point,
  326. prefix: string): Completion[];
  327. }
  328. export interface Config {
  329. get(key: string): any;
  330. set(key: string, value: any): void;
  331. all(): {[key: string]: any};
  332. moduleUrl(name: string, component?: string): string;
  333. setModuleUrl(name: string, subst: string): string;
  334. loadModule(moduleName: string | [string, string],
  335. onLoad: (module: any) => void): void;
  336. init(packaged: any): any;
  337. defineOptions(obj: any, path: string, options: {[key: string]: any}): Config;
  338. resetOptions(obj: any): void;
  339. setDefaultValue(path: string, name: string, value: any): void;
  340. setDefaultValues(path: string, optionHash: {[key: string]: any}): void;
  341. }
  342. export interface OptionsProvider {
  343. setOptions(optList: {[key: string]: any}): void;
  344. getOptions(optionNames?: string[] | {[key: string]: any}): {[key: string]: any};
  345. setOption(name: string, value: any): void;
  346. getOption(name: string): any;
  347. }
  348. export interface UndoManager {
  349. addSession(session: EditSession): void;
  350. add(delta: Delta, allowMerge: boolean, session: EditSession): void;
  351. addSelection(selection: string, rev?: number): void;
  352. startNewGroup(): void;
  353. markIgnored(from: number, to?: number): void;
  354. getSelection(rev: number, after?: boolean): { value: string, rev: number };
  355. getRevision(): number;
  356. getDeltas(from: number, to?: number): Delta[];
  357. undo(session: EditSession, dontSelect?: boolean): void;
  358. redo(session: EditSession, dontSelect?: boolean): void;
  359. reset(): void;
  360. canUndo(): boolean;
  361. canRedo(): boolean;
  362. bookmark(rev?: number): void;
  363. isAtBookmark(): boolean;
  364. }
  365. export interface EditSession extends EventEmitter, OptionsProvider, Folding {
  366. selection: Selection;
  367. on(name: 'changeFold',
  368. callback: (obj: { data: Fold, action: string }) => void): void;
  369. on(name: 'changeScrollLeft', callback: (scrollLeft: number) => void): void;
  370. on(name: 'changeScrollTop', callback: (scrollTop: number) => void): void;
  371. on(name: 'tokenizerUpdate',
  372. callback: (obj: { data: { first: number, last: number } }) => void): void;
  373. setOption<T extends keyof EditSessionOptions>(name: T, value: EditSessionOptions[T]): void;
  374. getOption<T extends keyof EditSessionOptions>(name: T): EditSessionOptions[T];
  375. setDocument(doc: Document): void;
  376. getDocument(): Document;
  377. resetCaches(): void;
  378. setValue(text: string): void;
  379. getValue(): string;
  380. getSelection(): Selection;
  381. getState(row: number): string;
  382. getTokens(row: number): Token[];
  383. getTokenAt(row: number, column: number): Token | null;
  384. setUndoManager(undoManager: UndoManager): void;
  385. markUndoGroup(): void;
  386. getUndoManager(): UndoManager;
  387. getTabString(): string;
  388. setUseSoftTabs(val: boolean): void;
  389. getUseSoftTabs(): boolean;
  390. setTabSize(tabSize: number): void;
  391. getTabSize(): number;
  392. isTabStop(position: Point): boolean;
  393. setNavigateWithinSoftTabs(navigateWithinSoftTabs: boolean): void;
  394. getNavigateWithinSoftTabs(): boolean;
  395. setOverwrite(overwrite: boolean): void;
  396. getOverwrite(): boolean;
  397. toggleOverwrite(): void;
  398. addGutterDecoration(row: number, className: string): void;
  399. removeGutterDecoration(row: number, className: string): void;
  400. getBreakpoints(): string[];
  401. setBreakpoints(rows: number[]): void;
  402. clearBreakpoints(): void;
  403. setBreakpoint(row: number, className: string): void;
  404. clearBreakpoint(row: number): void;
  405. addMarker(range: Range,
  406. clazz: string,
  407. type: MarkerRenderer,
  408. inFront: boolean): number;
  409. addDynamicMarker(marker: MarkerLike, inFront: boolean): MarkerLike;
  410. removeMarker(markerId: number): void;
  411. getMarkers(inFront?: boolean): MarkerLike[];
  412. highlight(re: RegExp): void;
  413. highlightLines(startRow: number,
  414. endRow: number,
  415. clazz: string,
  416. inFront?: boolean): Range;
  417. setAnnotations(annotations: Annotation[]): void;
  418. getAnnotations(): Annotation[];
  419. clearAnnotations(): void;
  420. getWordRange(row: number, column: number): Range;
  421. getAWordRange(row: number, column: number): Range;
  422. setNewLineMode(newLineMode: NewLineMode): void;
  423. getNewLineMode(): NewLineMode;
  424. setUseWorker(useWorker: boolean): void;
  425. getUseWorker(): boolean;
  426. setMode(mode: string | SyntaxMode, callback?: () => void): void;
  427. getMode(): SyntaxMode;
  428. setScrollTop(scrollTop: number): void;
  429. getScrollTop(): number;
  430. setScrollLeft(scrollLeft: number): void;
  431. getScrollLeft(): number;
  432. getScreenWidth(): number;
  433. getLineWidgetMaxWidth(): number;
  434. getLine(row: number): string;
  435. getLines(firstRow: number, lastRow: number): string[];
  436. getLength(): number;
  437. getTextRange(range: Range): string;
  438. insert(position: Point, text: string): void;
  439. remove(range: Range): void;
  440. removeFullLines(firstRow: number, lastRow: number): void;
  441. undoChanges(deltas: Delta[], dontSelect?: boolean): void;
  442. redoChanges(deltas: Delta[], dontSelect?: boolean): void;
  443. setUndoSelect(enable: boolean): void;
  444. replace(range: Range, text: string): void;
  445. moveText(fromRange: Range, toPosition: Point, copy?: boolean): void;
  446. indentRows(startRow: number, endRow: number, indentString: string): void;
  447. outdentRows(range: Range): void;
  448. moveLinesUp(firstRow: number, lastRow: number): void;
  449. moveLinesDown(firstRow: number, lastRow: number): void;
  450. duplicateLines(firstRow: number, lastRow: number): void;
  451. setUseWrapMode(useWrapMode: boolean): void;
  452. getUseWrapMode(): boolean;
  453. setWrapLimitRange(min: number, max: number): void;
  454. adjustWrapLimit(desiredLimit: number): boolean;
  455. getWrapLimit(): number;
  456. setWrapLimit(limit: number): void;
  457. getWrapLimitRange(): { min: number, max: number };
  458. getRowLineCount(row: number): number;
  459. getRowWrapIndent(screenRow: number): number;
  460. getScreenLastRowColumn(screenRow: number): number;
  461. getDocumentLastRowColumn(docRow: number, docColumn: number): number;
  462. getdocumentLastRowColumnPosition(docRow: number, docColumn: number): Point;
  463. getRowSplitData(row: number): string | undefined;
  464. getScreenTabSize(screenColumn: number): number;
  465. screenToDocumentRow(screenRow: number, screenColumn: number): number;
  466. screenToDocumentColumn(screenRow: number, screenColumn: number): number;
  467. screenToDocumentPosition(screenRow: number,
  468. screenColumn: number,
  469. offsetX?: number): Point;
  470. documentToScreenPosition(docRow: number, docColumn: number): Point;
  471. documentToScreenPosition(position: Point): Point;
  472. documentToScreenColumn(row: number, docColumn: number): number;
  473. documentToScreenRow(docRow: number, docColumn: number): number;
  474. getScreenLength(): number;
  475. destroy(): void;
  476. }
  477. export interface KeyBinding {
  478. setDefaultHandler(handler: KeyboardHandler): void;
  479. setKeyboardHandler(handler: KeyboardHandler): void;
  480. addKeyboardHandler(handler: KeyboardHandler, pos: number): void;
  481. removeKeyboardHandler(handler: KeyboardHandler): boolean;
  482. getKeyboardHandler(): KeyboardHandler;
  483. getStatusText(): string;
  484. }
  485. export interface CommandManager extends EventEmitter {
  486. on(name: 'exec', callback: (obj: {
  487. editor: Editor,
  488. command: Command,
  489. args: any[]
  490. }) => void): void;
  491. once(name: string, callback: Function): void;
  492. setDefaultHandler(name: string, callback: Function): void;
  493. removeDefaultHandler(name: string, callback: Function): void;
  494. on(name: string, callback: Function, capturing?: boolean): void;
  495. addEventListener(name: string, callback: Function, capturing?: boolean): void;
  496. off(name: string, callback: Function): void;
  497. removeListener(name: string, callback: Function): void;
  498. removeEventListener(name: string, callback: Function): void;
  499. exec(command: string, editor: Editor, args: any): boolean;
  500. toggleRecording(editor: Editor): void;
  501. replay(editor: Editor): void;
  502. addCommand(command: Command): void;
  503. removeCommand(command: Command, keepCommand?: boolean): void;
  504. bindKey(key: string | { mac?: string, win?: string},
  505. command: CommandLike,
  506. position?: number): void;
  507. }
  508. export interface VirtualRenderer extends OptionsProvider, EventEmitter {
  509. container: HTMLElement;
  510. setOption<T extends keyof VirtualRendererOptions>(name: T, value: VirtualRendererOptions[T]): void;
  511. getOption<T extends keyof VirtualRendererOptions>(name: T): VirtualRendererOptions[T];
  512. setSession(session: EditSession): void;
  513. updateLines(firstRow: number, lastRow: number, force?: boolean): void;
  514. updateText(): void;
  515. updateFull(force?: boolean): void;
  516. updateFontSize(): void;
  517. adjustWrapLimit(): boolean;
  518. setAnimatedScroll(shouldAnimate: boolean): void;
  519. getAnimatedScroll(): boolean;
  520. setShowInvisibles(showInvisibles: boolean): void;
  521. getShowInvisibles(): boolean;
  522. setDisplayIndentGuides(display: boolean): void;
  523. getDisplayIndentGuides(): boolean;
  524. setShowPrintMargin(showPrintMargin: boolean): void;
  525. getShowPrintMargin(): boolean;
  526. setPrintMarginColumn(showPrintMargin: boolean): void;
  527. getPrintMarginColumn(): boolean;
  528. setShowGutter(show: boolean): void;
  529. getShowGutter(): boolean;
  530. setFadeFoldWidgets(show: boolean): void;
  531. getFadeFoldWidgets(): boolean;
  532. setHighlightGutterLine(shouldHighlight: boolean): void;
  533. getHighlightGutterLine(): boolean;
  534. getContainerElement(): HTMLElement;
  535. getMouseEventTarget(): HTMLElement;
  536. getTextAreaContainer(): HTMLElement;
  537. getFirstVisibleRow(): number;
  538. getFirstFullyVisibleRow(): number;
  539. getLastFullyVisibleRow(): number;
  540. getLastVisibleRow(): number;
  541. setPadding(padding: number): void;
  542. setScrollMargin(top: number,
  543. bottom: number,
  544. left: number,
  545. right: number): void;
  546. setHScrollBarAlwaysVisible(alwaysVisible: boolean): void;
  547. getHScrollBarAlwaysVisible(): boolean;
  548. setVScrollBarAlwaysVisible(alwaysVisible: boolean): void;
  549. getVScrollBarAlwaysVisible(): boolean;
  550. freeze(): void;
  551. unfreeze(): void;
  552. updateFrontMarkers(): void;
  553. updateBackMarkers(): void;
  554. updateBreakpoints(): void;
  555. setAnnotations(annotations: Annotation[]): void;
  556. updateCursor(): void;
  557. hideCursor(): void;
  558. showCursor(): void;
  559. scrollSelectionIntoView(anchor: Point,
  560. lead: Point,
  561. offset?: number): void;
  562. scrollCursorIntoView(cursor: Point, offset?: number): void;
  563. getScrollTop(): number;
  564. getScrollLeft(): number;
  565. getScrollTopRow(): number;
  566. getScrollBottomRow(): number;
  567. scrollToRow(row: number): void;
  568. alignCursor(cursor: Point | number, alignment: number): number;
  569. scrollToLine(line: number,
  570. center: boolean,
  571. animate: boolean,
  572. callback: () => void): void;
  573. animateScrolling(fromValue: number, callback: () => void): void;
  574. scrollToY(scrollTop: number): void;
  575. scrollToX(scrollLeft: number): void;
  576. scrollTo(x: number, y: number): void;
  577. scrollBy(deltaX: number, deltaY: number): void;
  578. isScrollableBy(deltaX: number, deltaY: number): boolean;
  579. textToScreenCoordinates(row: number, column: number): { pageX: number, pageY: number};
  580. visualizeFocus(): void;
  581. visualizeBlur(): void;
  582. showComposition(position: number): void;
  583. setCompositionText(text: string): void;
  584. hideComposition(): void;
  585. setTheme(theme: string, callback?: () => void): void;
  586. getTheme(): string;
  587. setStyle(style: string, include?: boolean): void;
  588. unsetStyle(style: string): void;
  589. setCursorStyle(style: string): void;
  590. setMouseCursor(cursorStyle: string): void;
  591. attachToShadowRoot(): void;
  592. destroy(): void;
  593. }
  594. export interface Selection extends EventEmitter {
  595. moveCursorWordLeft(): void;
  596. moveCursorWordRight(): void;
  597. fromOrientedRange(range: Range): void;
  598. setSelectionRange(match: any): void;
  599. getAllRanges(): Range[];
  600. addRange(range: Range): void;
  601. isEmpty(): boolean;
  602. isMultiLine(): boolean;
  603. setCursor(row: number, column: number): void;
  604. setAnchor(row: number, column: number): void;
  605. getAnchor(): Point;
  606. getCursor(): Point;
  607. isBackwards(): boolean;
  608. getRange(): Range;
  609. clearSelection(): void;
  610. selectAll(): void;
  611. setRange(range: Range, reverse?: boolean): void;
  612. selectTo(row: number, column: number): void;
  613. selectToPosition(pos: any): void;
  614. selectUp(): void;
  615. selectDown(): void;
  616. selectRight(): void;
  617. selectLeft(): void;
  618. selectLineStart(): void;
  619. selectLineEnd(): void;
  620. selectFileEnd(): void;
  621. selectFileStart(): void;
  622. selectWordRight(): void;
  623. selectWordLeft(): void;
  624. getWordRange(): void;
  625. selectWord(): void;
  626. selectAWord(): void;
  627. selectLine(): void;
  628. moveCursorUp(): void;
  629. moveCursorDown(): void;
  630. moveCursorLeft(): void;
  631. moveCursorRight(): void;
  632. moveCursorLineStart(): void;
  633. moveCursorLineEnd(): void;
  634. moveCursorFileEnd(): void;
  635. moveCursorFileStart(): void;
  636. moveCursorLongWordRight(): void;
  637. moveCursorLongWordLeft(): void;
  638. moveCursorBy(rows: number, chars: number): void;
  639. moveCursorToPosition(position: any): void;
  640. moveCursorTo(row: number, column: number, keepDesiredColumn?: boolean): void;
  641. moveCursorToScreen(row: number, column: number, keepDesiredColumn: boolean): void;
  642. }
  643. var Selection: {
  644. new(session: EditSession): Selection;
  645. }
  646. export interface Editor extends OptionsProvider, EventEmitter {
  647. container: HTMLElement;
  648. renderer: VirtualRenderer;
  649. id: string;
  650. commands: CommandManager;
  651. keyBinding: KeyBinding;
  652. session: EditSession;
  653. selection: Selection;
  654. on(name: 'blur', callback: (e: Event) => void): void;
  655. on(name: 'change', callback: (delta: Delta) => void): void;
  656. on(name: 'changeSelectionStyle', callback: (obj: { data: string }) => void): void;
  657. on(name: 'changeSession',
  658. callback: (obj: { session: EditSession, oldSession: EditSession }) => void): void;
  659. on(name: 'copy', callback: (obj: { text: string }) => void): void;
  660. on(name: 'focus', callback: (e: Event) => void): void;
  661. on(name: 'paste', callback: (obj: { text: string }) => void): void;
  662. setOption<T extends keyof EditorOptions>(name: T, value: EditorOptions[T]): void;
  663. getOption<T extends keyof EditorOptions>(name: T): EditorOptions[T];
  664. setKeyboardHandler(keyboardHandler: string, callback?: () => void): void;
  665. getKeyboardHandler(): string;
  666. setSession(session: EditSession): void;
  667. getSession(): EditSession;
  668. setValue(val: string, cursorPos?: number): string;
  669. getValue(): string;
  670. getSelection(): Selection;
  671. resize(force?: boolean): void;
  672. setTheme(theme: string, callback?: () => void): void;
  673. getTheme(): string;
  674. setStyle(style: string): void;
  675. unsetStyle(style: string): void;
  676. getFontSize(): string;
  677. setFontSize(size: string): void;
  678. focus(): void;
  679. isFocused(): boolean;
  680. flur(): void;
  681. getSelectedText(): string;
  682. getCopyText(): string;
  683. execCommand(command: string | string[], args: any): boolean;
  684. insert(text: string, pasted?: boolean): void;
  685. setOverwrite(overwrite: boolean): void;
  686. getOverwrite(): boolean;
  687. toggleOverwrite(): void;
  688. setScrollSpeed(speed: number): void;
  689. getScrollSpeed(): number;
  690. setDragDelay(dragDelay: number): void;
  691. getDragDelay(): number;
  692. setSelectionStyle(val: string): void;
  693. getSelectionStyle(): string;
  694. setHighlightActiveLine(shouldHighlight: boolean): void;
  695. getHighlightActiveLine(): boolean;
  696. setHighlightGutterLine(shouldHighlight: boolean): void;
  697. getHighlightGutterLine(): boolean;
  698. setHighlightSelectedWord(shouldHighlight: boolean): void;
  699. getHighlightSelectedWord(): boolean;
  700. setAnimatedScroll(shouldAnimate: boolean): void;
  701. getAnimatedScroll(): boolean;
  702. setShowInvisibles(showInvisibles: boolean): void;
  703. getShowInvisibles(): boolean;
  704. setDisplayIndentGuides(display: boolean): void;
  705. getDisplayIndentGuides(): boolean;
  706. setShowPrintMargin(showPrintMargin: boolean): void;
  707. getShowPrintMargin(): boolean;
  708. setPrintMarginColumn(showPrintMargin: number): void;
  709. getPrintMarginColumn(): number;
  710. setReadOnly(readOnly: boolean): void;
  711. getReadOnly(): boolean;
  712. setBehavioursEnabled(enabled: boolean): void;
  713. getBehavioursEnabled(): boolean;
  714. setWrapBehavioursEnabled(enabled: boolean): void;
  715. getWrapBehavioursEnabled(): boolean;
  716. setShowFoldWidgets(show: boolean): void;
  717. getShowFoldWidgets(): boolean;
  718. setFadeFoldWidgets(fade: boolean): void;
  719. getFadeFoldWidgets(): boolean;
  720. remove(dir?: 'left' | 'right'): void;
  721. removeWordRight(): void;
  722. removeWordLeft(): void;
  723. removeLineToEnd(): void;
  724. splitLine(): void;
  725. transposeLetters(): void;
  726. toLowerCase(): void;
  727. toUpperCase(): void;
  728. indent(): void;
  729. blockIndent(): void;
  730. blockOutdent(): void;
  731. sortLines(): void;
  732. toggleCommentLines(): void;
  733. toggleBlockComment(): void;
  734. modifyNumber(amount: number): void;
  735. removeLines(): void;
  736. duplicateSelection(): void;
  737. moveLinesDown(): void;
  738. moveLinesUp(): void;
  739. moveText(range: Range, toPosition: Point, copy?: boolean): Range;
  740. copyLinesUp(): void;
  741. copyLinesDown(): void;
  742. getFirstVisibleRow(): number;
  743. getLastVisibleRow(): number;
  744. isRowVisible(row: number): boolean;
  745. isRowFullyVisible(row: number): boolean;
  746. selectPageDown(): void;
  747. selectPageUp(): void;
  748. gotoPageDown(): void;
  749. gotoPageUp(): void;
  750. scrollPageDown(): void;
  751. scrollPageUp(): void;
  752. scrollToRow(row: number): void;
  753. scrollToLine(line: number, center: boolean, animate: boolean, callback: () => void): void;
  754. centerSelection(): void;
  755. getCursorPosition(): Point;
  756. getCursorPositionScreen(): Point;
  757. getSelectionRange(): Range;
  758. selectAll(): void;
  759. clearSelection(): void;
  760. moveCursorTo(row: number, column: number): void;
  761. moveCursorToPosition(pos: Point): void;
  762. jumpToMatching(select: boolean, expand: boolean): void;
  763. gotoLine(lineNumber: number, column: number, animate: boolean): void;
  764. navigateTo(row: number, column: number): void;
  765. navigateUp(): void;
  766. navigateDown(): void;
  767. navigateLeft(): void;
  768. navigateRight(): void;
  769. navigateLineStart(): void;
  770. navigateLineEnd(): void;
  771. navigateFileEnd(): void;
  772. navigateFileStart(): void;
  773. navigateWordRight(): void;
  774. navigateWordLeft(): void;
  775. replace(replacement: string, options?: Partial<SearchOptions>): number;
  776. replaceAll(replacement: string, options?: Partial<SearchOptions>): number;
  777. getLastSearchOptions(): Partial<SearchOptions>;
  778. find(needle: string, options?: Partial<SearchOptions>, animate?: boolean): void;
  779. findNext(options?: Partial<SearchOptions>, animate?: boolean): void;
  780. findPrevious(options?: Partial<SearchOptions>, animate?: boolean): void;
  781. undo(): void;
  782. redo(): void;
  783. destroy(): void;
  784. setAutoScrollEditorIntoView(enable: boolean): void;
  785. }
  786. }
  787. export const version: string;
  788. export const config: Ace.Config;
  789. export function require(name: string): any;
  790. export function edit(el: Element | string, options?: Partial<Ace.EditorOptions>): Ace.Editor;
  791. export function createEditSession(text: Ace.Document | string, mode: Ace.SyntaxMode): Ace.EditSession;
  792. export const VirtualRenderer: {
  793. new(container: HTMLElement, theme?: string): Ace.VirtualRenderer;
  794. };
  795. export const EditSession: {
  796. new(text: string | Document, mode?: Ace.SyntaxMode): Ace.EditSession;
  797. };
  798. export const UndoManager: {
  799. new(): Ace.UndoManager;
  800. };
  801. export const Range: {
  802. new(startRow: number, startColumn: number, endRow: number, endColumn: number): Ace.Range;
  803. fromPoints(start: Ace.Point, end: Ace.Point): Ace.Range;
  804. comparePoints(p1: Ace.Point, p2: Ace.Point): number;
  805. };