diff --git a/AceGitLinkPlugin.js b/AceGitLinkPlugin.js
deleted file mode 100644
index 8a8d2b41..00000000
--- a/AceGitLinkPlugin.js
+++ /dev/null
@@ -1,263 +0,0 @@
-var ConverterComponent = require("typedoc/dist/lib/converter/components").ConverterComponent;
-var Converter = require("typedoc/dist/lib/converter").Converter;
-var fs = require("fs");
-var modelTypes = require("typedoc/dist/lib/models/types");
-var modelReflections = require("typedoc/dist/lib/models/reflections/index");
-
-class AceGitLinkPlugin extends ConverterComponent {
- initialize() {
- this.listenTo(this.owner, Converter.EVENT_BEGIN, this.onBegin);
- this.logs = '';
- }
-
- onBegin() {
- // read options parameter
- var options = this.application.options;
- var urlPrefix = options.getValue('acegitlink');
- if (urlPrefix) {
- this.urlPrefix = urlPrefix;
- }
- try {
- // register handler
- this.listenTo(this.owner, Converter.EVENT_RESOLVE_BEGIN, this.onBeginResolve);
- this.listenTo(this.owner, Converter.EVENT_RESOLVE_END, this.onEndResolve);
- }
- catch (e) {
- console.error('typedoc-plugin-sourcefile-url: ' + e.message);
- }
- }
-
- onBeginResolve(context) {
- var project = context.project;
- for (var key in project.reflections) {
- var reflection = project.reflections[key];
- if (reflection.kind === 4096 && reflection.parent && reflection.parent.kind === 2048 && reflection.parent.parent && reflection.parent.parent.kind === 128) {
- if (!reflection.comment) {
- // removeReflection(project, reflection.parent);
- this.logs = this.logs + "Warning: ignoring method without comment: " + reflection.name + ". Class: " + reflection.parent.parent.name + "\r\n";
- }
- }
- }
- };
-
- onEndResolve(context) {
- var _this = this;
- var project = context.project;
- if (_this.urlPrefix) {
- var data = fs.readFileSync("generated/classes.json", "utf8");
- var classes = JSON.parse(data.toString());
- for (var key in project.reflections) {
- var reflection = project.reflections[key];
- if (reflection.sources) {
- reflection.sources.forEach(function (source) {
- if (source.file) {
- var obj = getSourceUrlFromFile(classes, reflection);
- if (obj) {
- if (obj.log) {
- source.url = _this.urlPrefix + obj.source + "#L" + obj.line;
- source.fileName = obj.source;
- source.line = obj.line;
- _this.logs = _this.logs + obj.log;
- } else {
- source.url = _this.urlPrefix + obj.source + "#L" + obj.line;
- source.fileName = obj.source;
- source.line = obj.line;
- }
- } else {
- if (reflection.inheritedFrom || reflection.implementationOf) {
- let condition = (reflection.inheritedFrom) ? "inheritedFrom" : "implementationOf";
- var objInh = getSourceUrlFromFile(classes, reflection[condition].reflection);
- if (objInh) {
- source.url = _this.urlPrefix + objInh.source + "#L" + objInh.line;
- source.fileName = objInh.source;
- source.line = objInh.line;
- }
- } else {
- source.fileName = undefined;
- source.line = '';
- }
- }
- }
- });
- }
- }
- fs.writeFileSync("generated/documentation.log", this.logs + _this.logs);
- }
- };
-
-}
-
-function getSourceUrlFromFile(aceObjects, reflection) {
- var pattern = /\/(src.*)/i;
-
- if (reflection.kindString === "Interface" || reflection.kindString === "Class") {
- var source = aceObjects[reflection.name];
- if (source && source.sourceName) {
- if (source.described) {
- return {
- "source": (source.sourceName.match(pattern)) ? source.sourceName.match(pattern)[1] : source.sourceName,
- "line": source.line
- };
- } else {
- return {
- "source": (source.sourceName.match(pattern)) ? source.sourceName.match(pattern)[1] : source.sourceName,
- "line": source.line,
- log: "No described class in classes.json: " + reflection.name + "\r\n"
- };
- }
-
- }
- } else if (reflection.kindString === "Call signature" && reflection.parent && reflection.parent.kindString === "Method" && (reflection.parent.parent.kindString === "Interface" || reflection.parent.parent.kindString === "Class")) {
- if (aceObjects[reflection.parent.parent.name]) {
- var parentSource = aceObjects[reflection.parent.parent.name][reflection.name];
- if (parentSource && parentSource.sourceName) {
- if (parentSource.described) {
- return {
- "source": (parentSource.sourceName.match(pattern)) ? parentSource.sourceName.match(pattern)[1] : parentSource.sourceName,
- "line": parentSource.line
- };
- } else {
- if (!reflection.inheritedFrom && !reflection.implementationOf) {
- return {
- "source": (parentSource.sourceName.match(pattern)) ? parentSource.sourceName.match(pattern)[1] : parentSource.sourceName,
- "line": parentSource.line,
- log: "No described method in classes.json: " + reflection.name + ". Class:" + reflection.parent.parent.name + "\r\n"
- };
- }
- }
- }
- }
- } else if (reflection.kindString === "Event" && reflection.parent && reflection.parent.kindString === "Event" && (reflection.parent.parent.kindString === "Interface" || reflection.parent.parent.kindString === "Class")) {
- if (aceObjects[reflection.parent.parent.name]) {
- if (reflection.parameters && reflection.parameters.length > 0 && reflection.parameters[0].name === "name") {
- var eventName = reflection.parameters[0].type.value + '_event';
- var parentSource = aceObjects[reflection.parent.parent.name][eventName];
- if (parentSource && parentSource.sourceName) {
- if (parentSource.described) {
- return {
- "source": (parentSource.sourceName.match(pattern)) ? parentSource.sourceName.match(pattern)[1] : parentSource.sourceName,
- "line": parentSource.line
- };
- } else {
- if (!reflection.inheritedFrom && !reflection.implementationOf) {
- return {
- "source": (parentSource.sourceName.match(pattern)) ? parentSource.sourceName.match(pattern)[1] : parentSource.sourceName,
- "line": parentSource.line,
- log: "No described event in classes.json: " + eventName + ". Class:" + reflection.parent.parent.name + "\r\n"
- };
- }
- }
- }
- }
- }
- } else if (reflection.kindString === "Constructor signature" && reflection.parent && reflection.parent.kindString === "Constructor" && (reflection.parent.parent.kindString === "Interface" || reflection.parent.parent.kindString === "Class")) {
- if (aceObjects[reflection.parent.parent.name]) {
- var parentSource = aceObjects[reflection.parent.parent.name]["construct"];
- if (parentSource && parentSource.sourceName) {
- if (parentSource.described) {
- return {
- "source": (parentSource.sourceName.match(pattern)) ? parentSource.sourceName.match(pattern)[1] : parentSource.sourceName,
- "line": parentSource.line
- };
- } else {
- if (!reflection.inheritedFrom && !reflection.implementationOf) {
- return {
- "source": (parentSource.sourceName.match(pattern)) ? parentSource.sourceName.match(pattern)[1] : parentSource.sourceName,
- "line": parentSource.line,
- log: "No constructor in classes.json: " + reflection.name + ". Class:" + reflection.parent.parent.name + "\r\n"
- };
- }
- }
- }
- }
- } else if (reflection.kindString === "Property" && reflection.parent && (reflection.parent.kindString === "Interface" || reflection.parent.kindString === "Class")) {
- if (aceObjects[reflection.parent.name]) {
- var parentSource = aceObjects[reflection.parent.name][reflection.name + "_prop"];
- if (parentSource && parentSource.sourceName) {
- if (parentSource.described) {
- return {
- "source": (parentSource.sourceName.match(pattern)) ? parentSource.sourceName.match(pattern)[1] : parentSource.sourceName,
- "line": parentSource.line
- };
- } else {
- if (!reflection.inheritedFrom && !reflection.implementationOf) {
- return {
- "source": (parentSource.sourceName.match(pattern)) ? parentSource.sourceName.match(pattern)[1] : parentSource.sourceName,
- "line": parentSource.line,
- log: "No described property in classes.json: " + reflection.name + ". Class:" + reflection.parent.name + "\r\n"
- };
- }
- }
- }
- }
- }
-
-}
-
-function removeReflection(project, reflection) {
- reflection.traverse(function (child) {
- return removeReflection(project, child);
- });
- var parent = reflection.parent;
- parent.traverse(function (child, property) {
- if (child === reflection) {
- switch (property) {
- case modelReflections.TraverseProperty.Children:
- if (parent.children) {
- var index = parent.children.indexOf(reflection);
- if (index !== -1) {
- parent.children.splice(index, 1);
- }
- }
- break;
- case modelReflections.TraverseProperty.GetSignature:
- delete parent.getSignature;
- break;
- case modelReflections.TraverseProperty.IndexSignature:
- delete parent.indexSignature;
- break;
- case modelReflections.TraverseProperty.Parameters:
- if (reflection.parent.parameters) {
- var index = reflection.parent.parameters.indexOf(reflection);
- if (index !== -1) {
- reflection.parent.parameters.splice(index, 1);
- }
- }
- break;
- case modelReflections.TraverseProperty.SetSignature:
- delete parent.setSignature;
- break;
- case modelReflections.TraverseProperty.Signatures:
- if (parent.signatures) {
- var index = parent.signatures.indexOf(reflection);
- if (index !== -1) {
- parent.signatures.splice(index, 1);
- }
- }
- break;
- case modelReflections.TraverseProperty.TypeLiteral:
- parent.type = new modelTypes.IntrinsicType('Object');
- break;
- case modelReflections.TraverseProperty.TypeParameter:
- if (parent.typeParameters) {
- var index = parent.typeParameters.indexOf(reflection);
- if (index !== -1) {
- parent.typeParameters.splice(index, 1);
- }
- }
- break;
- }
- }
- });
- var id = reflection.id;
- delete project.reflections[id];
- for (var key in project.symbolMapping) {
- if (project.symbolMapping.hasOwnProperty(key) && project.symbolMapping[key] === id) {
- delete project.symbolMapping[key];
- }
- }
-};
-
-AceGitLinkPlugin.prototype.componentName = "acegitlink";
-
-exports.AceGitLinkPlugin = AceGitLinkPlugin;
\ No newline at end of file
diff --git a/BorrowsTagPlugin.js b/BorrowsTagPlugin.js
deleted file mode 100644
index 6693f79c..00000000
--- a/BorrowsTagPlugin.js
+++ /dev/null
@@ -1,46 +0,0 @@
-var Components = require("typedoc/dist/lib/output/components").ContextAwareRendererComponent;
-var Events = require("typedoc/dist/lib/output/events");
-var Path = require("path");
-
-class BorrowsTagPlugin extends Components {
- initialize() {
- this.listenTo(this.owner, Events.RendererEvent.BEGIN, this.onBeginRendererEvent);
- this.logs = '';
- }
-
- onBeginRendererEvent(context) {
- var _this = this;
- var project = context.project;
- for (var key in project.reflections) {
- var reflection = project.reflections[key];
- if (reflection.comment && reflection.comment.tags && reflection.comment.tags.length > 0) {
- reflection.comment.tags.forEach(function (tag) {
- if (tag.tagName == "borrows") {
- var commentReflection = project.findReflectionByName(tag.text.replace(/\n+/, ''));
- if (commentReflection) {
- var comment = (commentReflection.comment || (commentReflection.signatures && commentReflection.signatures.length > 0 && commentReflection.signatures[0].comment));
- if (comment) {
- if (commentReflection.url) {
- if (_this.urlPrefix.test(commentReflection.url)) {
- tag.text = '' + tag.text + '';
- }
- else {
- const relative = Path.relative(Path.dirname("globals.html"), Path.dirname(commentReflection.url));
- tag.text = '' + tag.text + '';
- }
- }
- reflection.comment.copyFrom(comment);
- reflection.comment.tags.push(tag);
- }
- }
- }
- });
- }
- }
- }
-
-}
-
-BorrowsTagPlugin.prototype.componentName = "borrowstag";
-
-exports.BorrowsTagPlugin = BorrowsTagPlugin;
\ No newline at end of file
diff --git a/README.md b/README.md
index 6edcc226..36fa2768 100644
--- a/README.md
+++ b/README.md
@@ -1,24 +1,6 @@
# Ace documentation generator
-requires node >= 8
-
-```bash
-node generateAnnotations.js AceDirName/ace/src
-```
-
-Creates `classes.json` file in directory `generated`.
-There will be warnings in `generated\annotations.log` for duplicated classes\methods implementations from different files.
-
-Apply `classes.json` file to declaration with command
-
-```bash
-node generateNewDts.js ace.d.ts
-```
-
-There will be some information in `generated\declarations.log` that you could use for improving declaration file. (Missing events, methods, constructors)
-
-The final step will generate output documentation with TypeDoc.
-You will need to change `generator-options.json` with your settings.
+requires node >= 16
Important! Set `ACE_VERSION` variable which is used with `gitLink` parameter to constuct Ace release link - for example: `https://github.com/ajaxorg/ace/tree/v1.4.2/`
@@ -28,14 +10,3 @@ node generateDoc.js doc
```
First parameter - output directory for documentation
-
-Also log file will be created in `generated` dir with name `documentation.log`
-
-
-
-```bash
-export ACE_VERSION="v$(node -p 'require("ace/package.json").version')"
-node generateAnnotations.js ace/src
-node generateNewDts.js ace.d.ts
-node generateDoc.js doc
-```
\ No newline at end of file
diff --git a/ace.d.ts b/ace.d.ts
deleted file mode 100644
index 7b2f47c9..00000000
--- a/ace.d.ts
+++ /dev/null
@@ -1,1255 +0,0 @@
-export namespace Ace {
- export type NewLineMode = 'auto' | 'unix' | 'windows';
-
- export class Anchor implements EventEmitter {
- getPosition(): Position;
- getDocument(): Document;
- setPosition(row: number, column: number, noClip?: boolean): void;
- detach(): void;
- attach(doc: Document): void;
-
- addEventListener(name: string, callback: Function, capturing?: boolean): void;
-
- off(name: string, callback: Function): void;
-
- on(name: string, callback: Function, capturing?: boolean): void;
-
- once(name: string, callback: Function): void;
-
- removeDefaultHandler(name: string, callback: Function): void;
-
- removeEventListener(name: string, callback: Function): void;
-
- removeListener(name: string, callback: Function): void;
-
- setDefaultHandler(name: string, callback: Function): void;
-
- _emit(eventName: any, e: any): any;
-
- _signal(eventName: any, e: any): void;
-
- removeAllListeners(name?: string): void;
-
- }
-
- export class Document implements 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;
-
- addEventListener(name: string, callback: Function, capturing?: boolean): void;
-
- off(name: string, callback: Function): void;
-
- on(name: string, callback: Function, capturing?: boolean): void;
-
- once(name: string, callback: Function): void;
-
- removeDefaultHandler(name: string, callback: Function): void;
-
- removeEventListener(name: string, callback: Function): void;
-
- removeListener(name: string, callback: Function): void;
-
- setDefaultHandler(name: string, callback: Function): void;
-
- _emit(eventName: any, e: any): any;
-
- _signal(eventName: any, e: any): void;
-
- removeAllListeners(name?: string): void;
-
- }
-
- export class 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 class 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 class 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;
- useSvgGutterIcons: boolean;
- }
-
- 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;
- setDefaultHandler(name: string, callback: Function): void;
- removeDefaultHandler(name: string, callback: Function): void;
- on(name: string, callback: Function, capturing?: boolean): void;
- addEventListener(name: string, callback: Function, capturing?: boolean): void;
- off(name: string, callback: Function): void;
- removeListener(name: string, callback: Function): void;
- removeEventListener(name: string, callback: Function): void;
- _emit(eventName: any, e: any): any;
- _signal(eventName: any, e: any): void;
- removeAllListeners(name?: string): void;
- }
-
- export interface Point {
- row: number;
- column: number;
- }
-
- export interface Delta {
- action: 'insert' | 'remove';
- start: Point;
- end: Point;
- lines: string[];
- }
-
- export interface Annotation {
- row?: number;
- column?: number;
- text: string;
- type: string;
- }
-
- export interface MarkerGroupItem {
- range: Range;
- className: string;
- }
-
- export class MarkerGroup {
- constructor(session: EditSession);
- setMarkers(markers: MarkerGroupItem[]): void;
- getMarkerAtPosition(pos: Position): MarkerGroupItem;
- }
-
- export interface Command {
- name?: string;
- bindKey?: string | { mac?: string, win?: string };
- readOnly?: boolean;
- exec: (editor: Editor, args?: any) => void;
- }
-
- export type CommandLike = Command | ((editor: Editor) => void);
-
- export class KeyboardHandler {
- handleKeyboard: Function;
- }
-
- export class 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;
- }
-
- export type MarkerRenderer = (html: string[],
- range: Range,
- left: number,
- top: number,
- config: any) => void;
-
- export interface Token {
- type: string;
- value: string;
- index?: number;
- start?: number;
- }
-
- interface BaseCompletion {
- score?: number;
- meta?: string;
- caption?: string;
- docHTML?: string;
- docText?: string;
- completerId?: string;
- }
-
- export interface SnippetCompletion extends BaseCompletion {
- snippet: string;
- }
-
- export interface ValueCompletion extends BaseCompletion {
- value: string;
- }
-
- export type Completion = SnippetCompletion | ValueCompletion
-
- export interface Tokenizer {
- removeCapturingGroups(src: string): string;
- createSplitterRegexp(src: string, flag?: string): RegExp;
- getLineTokens(line: string, startState: string | string[]): Token[];
- }
-
- class TokenIterator {
- getCurrentToken(): Token;
- getCurrentTokenColumn(): number;
- getCurrentTokenRow(): number;
- getCurrentTokenPosition(): Point;
- getCurrentTokenRange(): Range;
- stepBackward(): Token;
- stepForward(): Token;
- }
-
- export class SyntaxMode {
- getTokenizer(): Tokenizer;
- toggleCommentLines(state: any,
- session: EditSession,
- startRow: number,
- endRow: number): void;
- toggleBlockComment(state: any,
- session: EditSession,
- range: Range,
- cursor: Point): void;
- getNextLineIndent(state: any, line: string, tab: string): string;
- checkOutdent(state: any, line: string, input: string): boolean;
- autoOutdent(state: any, doc: Document, row: number): void;
- // TODO implement WorkerClient types
- createWorker(session: EditSession): any;
- createModeDelegates(mapping: { [key: string]: string }): void;
- transformAction(state: string,
- action: string,
- editor: Editor,
- session: EditSession,
- text: string): any;
- getKeywords(append?: boolean): Array;
- getCompletions(state: string,
- session: EditSession,
- pos: Point,
- prefix: string): Completion[];
- }
-
- export class Config {
- get(key: string): any;
- set(key: string, value: any): void;
- all(): { [key: string]: any };
- moduleUrl(name: string, component?: string): string;
- setModuleUrl(name: string, subst: string): string;
- setLoader(cb: Function): void;
- setModuleLoader(name: string, onLoad: Function): void;
- loadModule(moduleName: string | [string, string],
- onLoad?: (module: any) => void): void;
- init(packaged: any): any;
- defineOptions(obj: any, path: string, options: { [key: string]: any }): Config;
- resetOptions(obj: any): void;
- setDefaultValue(path: string, name: string, value: any): void;
- setDefaultValues(path: string, optionHash: { [key: string]: any }): void;
- }
-
- export interface OptionsProvider {
- setOptions(optList: { [key: string]: any }): void;
- getOptions(optionNames?: string[] | { [key: string]: any }): { [key: string]: any };
- setOption(name: string, value: any): void;
- getOption(name: string): any;
- }
-
- export class UndoManager {
- addSession(session: EditSession): void;
- add(delta: Delta, allowMerge: boolean, session: EditSession): void;
- addSelection(selection: string, rev?: number): void;
- startNewGroup(): void;
- markIgnored(from: number, to?: number): void;
- getSelection(rev: number, after?: boolean): { value: string, rev: number };
- getRevision(): number;
- getDeltas(from: number, to?: number): Delta[];
- undo(session: EditSession, dontSelect?: boolean): void;
- redo(session: EditSession, dontSelect?: boolean): void;
- reset(): void;
- canUndo(): boolean;
- canRedo(): boolean;
- bookmark(rev?: number): void;
- isAtBookmark(): boolean;
- hasUndo(): boolean;
- hasRedo(): boolean;
- isClean(): boolean;
- markClean(rev?: number): void;
- }
-
- export interface Position {
- row: number,
- column: number
- }
-
- export class EditSession implements EventEmitter, OptionsProvider {
- selection: Selection;
-
- // TODO: define BackgroundTokenizer
-
- on(name: 'changeFold',
- callback: (obj: { data: Fold, action: string }) => void): Function;
- on(name: 'changeScrollLeft', callback: (scrollLeft: number) => void): Function;
- on(name: 'changeScrollTop', callback: (scrollTop: number) => void): Function;
- on(name: 'tokenizerUpdate',
- callback: (obj: { data: { first: number, last: number } }) => void): Function;
- on(name: 'change', callback: () => void): Function;
-
-
- setOption(name: T, value: EditSessionOptions[T]): void;
- getOption(name: T): EditSessionOptions[T];
-
- readonly doc: Document;
-
- setDocument(doc: Document): void;
- getDocument(): Document;
- resetCaches(): void;
- setValue(text: string): void;
- getValue(): string;
- getSelection(): Selection;
- getState(row: number): string;
- getTokens(row: number): Token[];
- getTokenAt(row: number, column: number): Token | null;
- setUndoManager(undoManager: UndoManager): void;
- markUndoGroup(): void;
- getUndoManager(): UndoManager;
- getTabString(): string;
- setUseSoftTabs(val: boolean): void;
- getUseSoftTabs(): boolean;
- setTabSize(tabSize: number): void;
- getTabSize(): number;
- isTabStop(position: Position): boolean;
- setNavigateWithinSoftTabs(navigateWithinSoftTabs: boolean): void;
- getNavigateWithinSoftTabs(): boolean;
- setOverwrite(overwrite: boolean): void;
- getOverwrite(): boolean;
- toggleOverwrite(): void;
- addGutterDecoration(row: number, className: string): void;
- removeGutterDecoration(row: number, className: string): void;
- getBreakpoints(): string[];
- setBreakpoints(rows: number[]): void;
- clearBreakpoints(): void;
- setBreakpoint(row: number, className: string): void;
- clearBreakpoint(row: number): void;
- addMarker(range: Range,
- className: string,
- type: "fullLine" | "screenLine" | "text" | MarkerRenderer,
- inFront?: boolean): number;
- addDynamicMarker(marker: MarkerLike, inFront: boolean): MarkerLike;
- removeMarker(markerId: number): void;
- getMarkers(inFront?: boolean): { [id: number]: MarkerLike };
- highlight(re: RegExp): void;
- highlightLines(startRow: number,
- endRow: number,
- className: string,
- inFront?: boolean): Range;
- setAnnotations(annotations: Annotation[]): void;
- getAnnotations(): Annotation[];
- clearAnnotations(): void;
- getWordRange(row: number, column: number): Range;
- getAWordRange(row: number, column: number): Range;
- setNewLineMode(newLineMode: NewLineMode): void;
- getNewLineMode(): NewLineMode;
- setUseWorker(useWorker: boolean): void;
- getUseWorker(): boolean;
- setMode(mode: string | SyntaxMode, callback?: () => void): void;
- getMode(): SyntaxMode;
- setScrollTop(scrollTop: number): void;
- getScrollTop(): number;
- setScrollLeft(scrollLeft: number): void;
- getScrollLeft(): number;
- getScreenWidth(): number;
- getLineWidgetMaxWidth(): number;
- getLine(row: number): string;
- getLines(firstRow: number, lastRow: number): string[];
- getLength(): number;
- getTextRange(range: Range): string;
- insert(position: Position, text: string): void;
- remove(range: Range): void;
- removeFullLines(firstRow: number, lastRow: number): void;
- undoChanges(deltas: Delta[], dontSelect?: boolean): void;
- redoChanges(deltas: Delta[], dontSelect?: boolean): void;
- setUndoSelect(enable: boolean): void;
- replace(range: Range, text: string): void;
- moveText(fromRange: Range, toPosition: Position, copy?: boolean): void;
- indentRows(startRow: number, endRow: number, indentString: string): void;
- outdentRows(range: Range): void;
- moveLinesUp(firstRow: number, lastRow: number): void;
- moveLinesDown(firstRow: number, lastRow: number): void;
- duplicateLines(firstRow: number, lastRow: number): void;
- setUseWrapMode(useWrapMode: boolean): void;
- getUseWrapMode(): boolean;
- setWrapLimitRange(min: number, max: number): void;
- adjustWrapLimit(desiredLimit: number): boolean;
- getWrapLimit(): number;
- setWrapLimit(limit: number): void;
- getWrapLimitRange(): { min: number, max: number };
- getRowLineCount(row: number): number;
- getRowWrapIndent(screenRow: number): number;
- getScreenLastRowColumn(screenRow: number): number;
- getDocumentLastRowColumn(docRow: number, docColumn: number): number;
- getdocumentLastRowColumnPosition(docRow: number, docColumn: number): Position;
- getRowSplitData(row: number): string | undefined;
- getScreenTabSize(screenColumn: number): number;
- screenToDocumentRow(screenRow: number, screenColumn: number): number;
- screenToDocumentColumn(screenRow: number, screenColumn: number): number;
- screenToDocumentPosition(screenRow: number,
- screenColumn: number,
- offsetX?: number): Position;
- documentToScreenPosition(docRow: number, docColumn: number): Position;
- documentToScreenPosition(position: Position): Position;
- documentToScreenColumn(row: number, docColumn: number): number;
- documentToScreenRow(docRow: number, docColumn: number): number;
- getScreenLength(): number;
- destroy(): void;
-
- addEventListener(name: string, callback: Function, capturing?: boolean): void;
-
- getOptions(optionNames?: string[] | { [p: string]: any }): { [p: string]: any };
-
- off(name: string, callback: Function): void;
-
- once(name: string, callback: Function): void;
-
- removeDefaultHandler(name: string, callback: Function): void;
-
- removeEventListener(name: string, callback: Function): void;
-
- removeListener(name: string, callback: Function): void;
-
- setDefaultHandler(name: string, callback: Function): void;
-
- setOptions(optList: { [p: string]: any }): void;
-
- _emit(eventName: any, e: any): any;
-
- _signal(eventName: any, e: any): void;
-
- removeAllListeners(name?: string): void;
-
- }
-
- export class KeyBinding {
- setDefaultHandler(handler: KeyboardHandler): void;
- setKeyboardHandler(handler: KeyboardHandler): void;
- addKeyboardHandler(handler: KeyboardHandler, pos?: number): void;
- removeKeyboardHandler(handler: KeyboardHandler): boolean;
- getKeyboardHandler(): KeyboardHandler;
- getStatusText(): string;
- onCommandKey(e: any, hashId: number, keyCode: number): boolean;
- onTextInput(text: string): boolean;
- }
-
- interface CommandMap {
- [name: string]: Command;
- }
-
- type execEventHandler = (obj: {
- editor: Editor,
- command: Command,
- args: any[]
- }) => void;
-
- export interface CommandManager extends EventEmitter {
- byName: CommandMap,
- commands: CommandMap,
- on(name: 'exec', callback: execEventHandler): Function;
- on(name: 'afterExec', callback: execEventHandler): Function;
- once(name: string, callback: Function): void;
- setDefaultHandler(name: string, callback: Function): void;
- removeDefaultHandler(name: string, callback: Function): void;
- on(name: string, callback: Function, capturing?: boolean): void;
- addEventListener(name: string, callback: Function, capturing?: boolean): void;
- off(name: string, callback: Function): void;
- removeListener(name: string, callback: Function): void;
- removeEventListener(name: string, callback: Function): void;
-
- exec(command: string, editor: Editor, args: any): boolean;
- toggleRecording(editor: Editor): void;
- replay(editor: Editor): void;
- addCommand(command: Command): void;
- addCommands(command: Command[]): void;
- removeCommand(command: Command | string, keepCommand?: boolean): void;
- removeCommands(command: Command[]): void;
- bindKey(key: string | { mac?: string, win?: string},
- command: CommandLike,
- position?: number): void;
- bindKeys(keys: {[s: string]: Function}): void;
- parseKeys(keyPart: string): {key: string, hashId: number};
- findKeyCommand(hashId: number, keyString: string): string | undefined;
- handleKeyboard(data: {}, hashId: number, keyString: string, keyCode: string | number): void | {command: string};
- getStatusText(editor: Editor, data: {}): string;
- }
-
- export class VirtualRenderer implements OptionsProvider, EventEmitter {
- readonly container: HTMLElement;
- readonly scroller: HTMLElement;
- readonly content: HTMLElement;
- readonly characterWidth: number;
- readonly lineHeight: number;
- readonly scrollLeft: number;
- readonly scrollTop: number;
- readonly $padding: number;
-
- setOption(name: T, value: VirtualRendererOptions[T]): void;
- getOption(name: T): VirtualRendererOptions[T];
-
- setSession(session: EditSession): void;
- updateLines(firstRow: number, lastRow: number, force?: boolean): void;
- updateText(): void;
- updateFull(force?: boolean): void;
- updateFontSize(): void;
- adjustWrapLimit(): boolean;
- setAnimatedScroll(shouldAnimate: boolean): void;
- getAnimatedScroll(): boolean;
- setShowInvisibles(showInvisibles: boolean): void;
- getShowInvisibles(): boolean;
- setDisplayIndentGuides(display: boolean): void;
- getDisplayIndentGuides(): boolean;
- setShowPrintMargin(showPrintMargin: boolean): void;
- getShowPrintMargin(): boolean;
- setPrintMarginColumn(showPrintMargin: boolean): void;
- getPrintMarginColumn(): boolean;
- setShowGutter(show: boolean): void;
- getShowGutter(): boolean;
- setFadeFoldWidgets(show: boolean): void;
- getFadeFoldWidgets(): boolean;
- setHighlightGutterLine(shouldHighlight: boolean): void;
- getHighlightGutterLine(): boolean;
- getContainerElement(): HTMLElement;
- getMouseEventTarget(): HTMLElement;
- getTextAreaContainer(): HTMLElement;
- getFirstVisibleRow(): number;
- getFirstFullyVisibleRow(): number;
- getLastFullyVisibleRow(): number;
- getLastVisibleRow(): number;
- setPadding(padding: number): void;
- setScrollMargin(top: number,
- bottom: number,
- left: number,
- right: number): void;
- setHScrollBarAlwaysVisible(alwaysVisible: boolean): void;
- getHScrollBarAlwaysVisible(): boolean;
- setVScrollBarAlwaysVisible(alwaysVisible: boolean): void;
- getVScrollBarAlwaysVisible(): boolean;
- freeze(): void;
- unfreeze(): void;
- updateFrontMarkers(): void;
- updateBackMarkers(): void;
- updateBreakpoints(): void;
- setAnnotations(annotations: Annotation[]): void;
- updateCursor(): void;
- hideCursor(): void;
- showCursor(): void;
- scrollSelectionIntoView(anchor: Position,
- lead: Position,
- offset?: number): void;
- scrollCursorIntoView(cursor: Position, offset?: number): void;
- getScrollTop(): number;
- getScrollLeft(): number;
- getScrollTopRow(): number;
- getScrollBottomRow(): number;
- scrollToRow(row: number): void;
- alignCursor(cursor: Position | number, alignment: number): number;
- scrollToLine(line: number,
- center: boolean,
- animate: boolean,
- callback: () => void): void;
- animateScrolling(fromValue: number, callback: () => void): void;
- scrollToY(scrollTop: number): void;
- scrollToX(scrollLeft: number): void;
- scrollTo(x: number, y: number): void;
- scrollBy(deltaX: number, deltaY: number): void;
- isScrollableBy(deltaX: number, deltaY: number): boolean;
- textToScreenCoordinates(row: number, column: number): { pageX: number, pageY: number};
- pixelToScreenCoordinates(x: number, y: number): {row: number, column: number, side: 1|-1, offsetX: number};
- visualizeFocus(): void;
- visualizeBlur(): void;
- showComposition(position: number): void;
- setCompositionText(text: string): void;
- hideComposition(): void;
- setGhostText(text: string, position: Point): void;
- removeGhostText(): void;
- setTheme(theme: string, callback?: () => void): void;
- getTheme(): string;
- setStyle(style: string, include?: boolean): void;
- unsetStyle(style: string): void;
- setCursorStyle(style: string): void;
- setMouseCursor(cursorStyle: string): void;
- attachToShadowRoot(): void;
- destroy(): void;
-
- addEventListener(name: string, callback: Function, capturing?: boolean): void;
-
- getOptions(optionNames?: string[] | { [p: string]: any }): { [p: string]: any };
-
- off(name: string, callback: Function): void;
-
- on(name: string, callback: Function, capturing?: boolean): void;
-
- once(name: string, callback: Function): void;
-
- removeDefaultHandler(name: string, callback: Function): void;
-
- removeEventListener(name: string, callback: Function): void;
-
- removeListener(name: string, callback: Function): void;
-
- setDefaultHandler(name: string, callback: Function): void;
-
- setOptions(optList: { [p: string]: any }): void;
-
- _emit(eventName: any, e: any): any;
-
- _signal(eventName: any, e: any): void;
-
- removeAllListeners(name?: string): void;
-
- }
-
-
- export class Selection implements EventEmitter {
- moveCursorWordLeft(): void;
- moveCursorWordRight(): void;
- fromOrientedRange(range: Range): void;
- setSelectionRange(match: any): void;
- getAllRanges(): Range[];
- addRange(range: Range): void;
- isEmpty(): boolean;
- isMultiLine(): boolean;
- setCursor(row: number, column: number): void;
- setAnchor(row: number, column: number): void;
- getAnchor(): Position;
- getCursor(): Position;
- isBackwards(): boolean;
- getRange(): Range;
- clearSelection(): void;
- selectAll(): void;
- setRange(range: Range, reverse?: boolean): void;
- selectTo(row: number, column: number): void;
- selectToPosition(pos: any): void;
- selectUp(): void;
- selectDown(): void;
- selectRight(): void;
- selectLeft(): void;
- selectLineStart(): void;
- selectLineEnd(): void;
- selectFileEnd(): void;
- selectFileStart(): void;
- selectWordRight(): void;
- selectWordLeft(): void;
- getWordRange(): void;
- selectWord(): void;
- selectAWord(): void;
- selectLine(): void;
- moveCursorUp(): void;
- moveCursorDown(): void;
- moveCursorLeft(): void;
- moveCursorRight(): void;
- moveCursorLineStart(): void;
- moveCursorLineEnd(): void;
- moveCursorFileEnd(): void;
- moveCursorFileStart(): void;
- moveCursorLongWordRight(): void;
- moveCursorLongWordLeft(): void;
- moveCursorBy(rows: number, chars: number): void;
- moveCursorToPosition(position: any): void;
- moveCursorTo(row: number, column: number, keepDesiredColumn?: boolean): void;
- moveCursorToScreen(row: number, column: number, keepDesiredColumn: boolean): void;
-
- toJSON(): SavedSelection | SavedSelection[];
- fromJSON(selection: SavedSelection | SavedSelection[]): void;
-
- addEventListener(name: string, callback: Function, capturing?: boolean): void;
-
- off(name: string, callback: Function): void;
-
- on(name: string, callback: Function, capturing?: boolean): void;
-
- once(name: string, callback: Function): void;
-
- removeDefaultHandler(name: string, callback: Function): void;
-
- removeEventListener(name: string, callback: Function): void;
-
- removeListener(name: string, callback: Function): void;
-
- setDefaultHandler(name: string, callback: Function): void;
-
- _emit(eventName: any, e: any): any;
-
- _signal(eventName: any, e: any): void;
-
- removeAllListeners(name?: string): void;
-
- }
- interface SavedSelection {
- start: Point;
- end: Point;
- isBackwards: boolean;
- }
-
- export interface TextInput {
- resetSelection(): void;
- }
-
- export class Editor implements OptionsProvider, EventEmitter {
- once(name: string, callback: Function): void;
- setDefaultHandler(name: string, callback: Function): void;
- removeDefaultHandler(name: string, callback: Function): void;
- addEventListener(name: string, callback: Function, capturing?: boolean): void;
- off(name: string, callback: Function): void;
- removeListener(name: string, callback: Function): void;
- removeEventListener(name: string, callback: Function): void;
- _emit(eventName: any, e: any);
- _signal(eventName: any, e: any): void;
- removeAllListeners(name?: string): void;
- setOptions(optList: { [key: string]: any; }): void;
- getOptions(optionNames?: string[] | { [key: string]: any; }): { [key: string]: any; };
- container: HTMLElement;
- renderer: VirtualRenderer;
- id: string;
- commands: CommandManager;
- keyBinding: KeyBinding;
- session: EditSession;
- selection: Selection;
- textInput: TextInput;
-
- on(name: 'blur', callback: (e: Event) => void): void;
- on(name: 'input', callback: () => void): void;
- on(name: 'change', callback: (delta: Delta) => void): void;
- on(name: 'changeSelectionStyle', callback: (obj: { data: string }) => void): void;
- on(name: 'changeSession',
- callback: (obj: { session: EditSession, oldSession: EditSession }) => void): void;
- on(name: 'copy', callback: (obj: { text: string }) => void): void;
- on(name: 'focus', callback: (e: Event) => void): void;
- on(name: 'paste', callback: (obj: { text: string }) => void): void;
- on(name: 'mousemove', callback: (e: any) => void): void;
- on(name: 'mouseup', callback: (e: any) => void): void;
- on(name: 'mousewheel', callback: (e: any) => void): void;
- on(name: 'click', callback: (e: any) => void): void;
-
- onPaste(text: string, event: any): void;
-
- setOption(name: T, value: EditorOptions[T]): void;
- getOption(name: T): EditorOptions[T];
-
- setKeyboardHandler(keyboardHandler: string, callback?: () => void): void;
- setKeyboardHandler(keyboardHandler: KeyboardHandler|null): void;
- getKeyboardHandler(): string;
- setSession(session: EditSession): void;
- getSession(): EditSession;
- setValue(val: string, cursorPos?: number): string;
- getValue(): string;
- getSelection(): Selection;
- resize(force?: boolean): void;
- setTheme(theme: string, callback?: () => void): void;
- getTheme(): string;
- setStyle(style: string): void;
- unsetStyle(style: string): void;
- getFontSize(): string;
- setFontSize(size: number): void;
- focus(): void;
- isFocused(): boolean;
- blur(): void;
- getSelectedText(): string;
- getCopyText(): string;
- execCommand(command: string | string[], args?: any): boolean;
- insert(text: string, pasted?: boolean): void;
- setOverwrite(overwrite: boolean): void;
- getOverwrite(): boolean;
- toggleOverwrite(): void;
- setScrollSpeed(speed: number): void;
- getScrollSpeed(): number;
- setDragDelay(dragDelay: number): void;
- getDragDelay(): number;
- setSelectionStyle(val: string): void;
- getSelectionStyle(): string;
- setHighlightActiveLine(shouldHighlight: boolean): void;
- getHighlightActiveLine(): boolean;
- setHighlightGutterLine(shouldHighlight: boolean): void;
- getHighlightGutterLine(): boolean;
- setHighlightSelectedWord(shouldHighlight: boolean): void;
- getHighlightSelectedWord(): boolean;
- setAnimatedScroll(shouldAnimate: boolean): void;
- getAnimatedScroll(): boolean;
- setShowInvisibles(showInvisibles: boolean): void;
- getShowInvisibles(): boolean;
- setDisplayIndentGuides(display: boolean): void;
- getDisplayIndentGuides(): boolean;
- setShowPrintMargin(showPrintMargin: boolean): void;
- getShowPrintMargin(): boolean;
- setPrintMarginColumn(showPrintMargin: number): void;
- getPrintMarginColumn(): number;
- setReadOnly(readOnly: boolean): void;
- getReadOnly(): boolean;
- setBehavioursEnabled(enabled: boolean): void;
- getBehavioursEnabled(): boolean;
- setWrapBehavioursEnabled(enabled: boolean): void;
- getWrapBehavioursEnabled(): boolean;
- setShowFoldWidgets(show: boolean): void;
- getShowFoldWidgets(): boolean;
- setFadeFoldWidgets(fade: boolean): void;
- getFadeFoldWidgets(): boolean;
- remove(dir?: 'left' | 'right'): void;
- removeWordRight(): void;
- removeWordLeft(): void;
- removeLineToEnd(): void;
- splitLine(): void;
- setGhostText(text: string, position: Point): void;
- removeGhostText(): void;
- transposeLetters(): void;
- toLowerCase(): void;
- toUpperCase(): void;
- indent(): void;
- blockIndent(): void;
- blockOutdent(): void;
- sortLines(): void;
- toggleCommentLines(): void;
- toggleBlockComment(): void;
- modifyNumber(amount: number): void;
- removeLines(): void;
- duplicateSelection(): void;
- moveLinesDown(): void;
- moveLinesUp(): void;
- moveText(range: Range, toPosition: Point, copy?: boolean): Range;
- copyLinesUp(): void;
- copyLinesDown(): void;
- getFirstVisibleRow(): number;
- getLastVisibleRow(): number;
- isRowVisible(row: number): boolean;
- isRowFullyVisible(row: number): boolean;
- selectPageDown(): void;
- selectPageUp(): void;
- gotoPageDown(): void;
- gotoPageUp(): void;
- scrollPageDown(): void;
- scrollPageUp(): void;
- scrollToRow(row: number): void;
- scrollToLine(line: number, center: boolean, animate: boolean, callback: () => void): void;
- centerSelection(): void;
- getCursorPosition(): Point;
- getCursorPositionScreen(): Point;
- getSelectionRange(): Range;
- selectAll(): void;
- clearSelection(): void;
- moveCursorTo(row: number, column: number): void;
- moveCursorToPosition(pos: Point): void;
- jumpToMatching(select: boolean, expand: boolean): void;
- gotoLine(lineNumber: number, column: number, animate: boolean): void;
- navigateTo(row: number, column: number): void;
- navigateUp(times?: number): void;
- navigateDown(times?: number): void;
- navigateLeft(times?: number): void;
- navigateRight(times?: number): void;
- navigateLineStart(): void;
- navigateLineEnd(): void;
- navigateFileEnd(): void;
- navigateFileStart(): void;
- navigateWordRight(): void;
- navigateWordLeft(): void;
- replace(replacement: string, options?: Partial): number;
- replaceAll(replacement: string, options?: Partial): number;
- getLastSearchOptions(): Partial;
- find(needle: string | RegExp, options?: Partial, animate?: boolean): Ace.Range | undefined;
- findNext(options?: Partial, animate?: boolean): void;
- findPrevious(options?: Partial, animate?: boolean): void;
- findAll(needle: string | RegExp, options?: Partial, additive?: boolean): number;
- undo(): void;
- redo(): void;
- destroy(): void;
- setAutoScrollEditorIntoView(enable: boolean): void;
- completers: Completer[];
- }
-
- type CompleterCallback = (error: any, completions: Completion[]) => void;
-
- interface Completer {
- identifierRegexps?: Array,
- getCompletions(editor: Editor,
- session: EditSession,
- position: Point,
- prefix: string,
- callback: CompleterCallback): void;
- getDocTooltip?(item: Completion): undefined | string | Completion;
- id?: string;
- }
-
- export class AceInline {
- show(editor: Editor, completion: Completion, prefix: string): void;
-
- isOpen(): void;
-
- hide(): void;
-
- destroy(): void;
- }
-
- interface CompletionOptions {
- matches?: Completion[];
- }
-
- type CompletionProviderOptions = {
- exactMatch?: boolean;
- ignoreCaption?: boolean;
- }
-
- type CompletionRecord = {
- all: Completion[];
- filtered: Completion[];
- filterText: string;
- } | CompletionProviderOptions
-
- type GatherCompletionRecord = {
- prefix: string;
- matches: Completion[];
- finished: boolean;
- }
-
- type CompletionCallbackFunction = (err: Error | undefined, data: GatherCompletionRecord) => void;
- type CompletionProviderCallback = (err: Error | undefined, completions: CompletionRecord, finished: boolean) => void;
-
- export class CompletionProvider {
- insertByIndex(editor: Editor, index: number, options: CompletionProviderOptions): boolean;
-
- insertMatch(editor: Editor, data: Completion, options: CompletionProviderOptions): boolean;
-
- completions: CompletionRecord;
-
- gatherCompletions(editor: Editor, callback: CompletionCallbackFunction): boolean;
-
- provideCompletions(editor: Editor, options: CompletionProviderOptions, callback: CompletionProviderCallback): void;
-
- detach(): void;
- }
-
- export class Autocomplete {
- constructor();
-
- autoInsert?: boolean;
- autoSelect?: boolean;
- exactMatch?: boolean;
- inlineEnabled?: boolean;
-
- getPopup(): AcePopup;
-
- showPopup(editor: Editor, options: CompletionOptions): void;
-
- detach(): void;
-
- destroy(): void;
- }
-
- type AcePopupNavigation = "up" | "down" | "start" | "end";
-
- export class AcePopup {
- constructor(parentNode: HTMLElement);
-
- setData(list: Completion[], filterText: string): void;
-
- getData(row: number): Completion;
-
- getRow(): number;
- getRow(line: number): void;
-
- hide(): void;
-
- show(pos: Point, lineHeight: number, topdownOnly: boolean): void;
-
- tryShow(pos: Point, lineHeight: number, anchor: "top" | "bottom" | undefined, forceShow?: boolean): boolean;
-
- goTo(where: AcePopupNavigation): void;
- }
-}
-
-
-export const version: string;
-export const config: Ace.Config;
-export function require(name: string): any;
-export function edit(el: Element | string, options?: Partial): Ace.Editor;
-export function createEditSession(text: Ace.Document | string, mode: Ace.SyntaxMode): Ace.EditSession;
-
-export const VirtualRenderer: {
- new(container: HTMLElement, theme?: string): Ace.VirtualRenderer;
-};
-export const EditSession: {
- new(text: string | Document, mode?: Ace.SyntaxMode): Ace.EditSession;
-};
-export const UndoManager: {
- new(): Ace.UndoManager;
-};
-export const Range: {
- new(startRow: number, startColumn: number, endRow: number, endColumn: number): Ace.Range;
- fromPoints(start: Ace.Point, end: Ace.Point): Ace.Range;
- comparePoints(p1: Ace.Point, p2: Ace.Point): number;
-};
-
-
-type InlineAutocompleteAction = "prev" | "next" | "first" | "last";
-
-type TooltipCommandEnabledFunction = (editor: Ace.Editor) => boolean;
-
-interface TooltipCommand extends Ace.Command {
- enabled: TooltipCommandEnabledFunction | boolean,
- position?: number;
-}
-
-export class InlineAutocomplete {
- constructor();
-
- getInlineRenderer(): Ace.AceInline;
-
- getInlineTooltip(): CommandBarTooltip;
-
- getCompletionProvider(): Ace.CompletionProvider;
-
- show(editor: Ace.Editor): void;
-
- isOpen(): boolean;
-
- detach(): void;
-
- destroy(): void;
-
- goTo(action: InlineAutocompleteAction): void;
-
- tooltipEnabled: boolean;
- commands: Record
-
- getIndex(): number;
-
- setIndex(value: number): void;
-
- getLength(): number;
-
- getData(index?: number): Ace.Completion | undefined;
-
- updateCompletions(options: Ace.CompletionOptions): void;
-}
-
-export class CommandBarTooltip {
- constructor(parentElement: HTMLElement);
-
- registerCommand(id: string, command: TooltipCommand): void;
-
- attach(editor: Ace.Editor): void;
-
- updatePosition(): void;
-
- update(): void;
-
- isShown(): boolean;
-
- getAlwaysShow(): boolean;
-
- setAlwaysShow(alwaysShow: boolean): void;
-
- detach(): void;
-
- destroy(): void;
-}
diff --git a/annotator.js b/annotator.js
deleted file mode 100644
index 6efa6290..00000000
--- a/annotator.js
+++ /dev/null
@@ -1,62 +0,0 @@
-var Annotator = function (name, line, jsDoc) {
- this.name = name;
- this.line = line;
- this.jsDoc = jsDoc;
- //this.parent = parent;
-};
-(function () {
- Annotator.prototype.toString = function () {
- return this.name;
- };
-
- Annotator.prototype.get = function (name, line, jsDoc) {
- if (!(name instanceof Annotator)) {
- return this[name] || (this[name] = new Annotator(name, line, jsDoc));
- } else {
- return name;
- }
- };
- Annotator.prototype.find = function (states) {
- var s = this;
- while (s && !states[s.name]) {
- s = s.parent;
- }
- return states[s ? s.name : "start"];
- };
-
- Annotator.prototype.concat = function (name) {
- if ((name instanceof Annotator)) {
- var len = name.length;
- for (var i = 0; i < len; i++) {
- for (p in name[i]) {
- if (name[i].hasOwnProperty(p)) {
- ret[p] = name[i][p];
- }
- }
- }
- return name;
- }
-
- };
-
- Annotator.prototype.replace = function (a, b) {
- return this.name.replace(a, b);
- };
- Annotator.prototype.indexOf = function (a, b) {
- return this.name.indexOf(a, b);
- };
- Annotator.prototype.hasParent = function (states) {
- var s = this;
- while (s && states !== s.name) {
- s = s.parent;
- }
- return s ? 1 : -1;
- };
- Annotator.prototype.count = function () {
- var s = 1;
- for (var i in this.children) s += this.children[i].count();
- return s;
- };
-}).call(Annotator.prototype);
-
-exports.Annotator = Annotator;
\ No newline at end of file
diff --git a/ast.js b/ast.js
deleted file mode 100644
index bbe8b24c..00000000
--- a/ast.js
+++ /dev/null
@@ -1,39 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var ts = require("typescript");
-function generateDocumentation(fileNames, options) {
- var program = ts.createProgram(fileNames, options);
- // Get the checker, we will use it to find more about classes
- var checker = program.getTypeChecker();
- var indent = 0;
- for (var _i = 0, _a = program.getSourceFiles(); _i < _a.length; _i++) {
- var sourceFile = _a[_i];
- //if (!sourceFile.isDeclarationFile) {
- ts.forEachChild(sourceFile, print);
- //}
- }
-
- function print(node) {
- var symbol = checker.getSymbolAtLocation(node.name);
- if (symbol) {
- var type = ' - ' + checker.typeToString(checker.getTypeOfSymbolAtLocation(symbol, symbol.valueDeclaration));
- }
- else {
- var type = '';
- }
- if (node.text)
- var token = ': ' + node.text;
- else
- var token = '';
-
- var jsDoc = '';
- let currentLine = ts.getLineAndCharacterOfPosition(sourceFile, node.getStart()).line + 1;
- console.log(new Array(indent + 1).join(' ') + ts.SyntaxKind[node.kind] + '(' + node.kind + ')' + token + type + ': ' + currentLine);
- indent++;
- ts.forEachChild(node, print);
- indent--;
- }
- }
-generateDocumentation(process.argv.slice(2), {
- target: ts.ScriptTarget.ES5, module: ts.ModuleKind.CommonJS, allowJs: true, declaration: true, lib: [], types: []
-});
diff --git a/generateAnnotations.js b/generateAnnotations.js
deleted file mode 100644
index be9ae098..00000000
--- a/generateAnnotations.js
+++ /dev/null
@@ -1,623 +0,0 @@
-"use strict";
-var ts = require("typescript");
-var fs = require("fs");
-const EOL = '\n';
-var propObjects = {};
-var options = JSON.parse(fs.readFileSync("generator-options.json", "utf8").toString());
-
-var excludeClasses = options["exclude"]["classes"];
-var excludeMethods = options["exclude"]["methods"];
-
-function createCompilerHost(options) {
- return {
- getSourceFile: getSourceFile,
- getDefaultLibFileName: function () {
- return ts.getDefaultLibFileName(options)
- },
- writeFile: function (fileName, content) {
- return ts.sys.writeFile(fileName, content);
- },
- getCurrentDirectory: function () {
- return ts.sys.getCurrentDirectory();
- },
- getDirectories: function (path) {
- return ts.sys.getDirectories(path);
- },
- getCanonicalFileName: function (fileName) {
- return ts.sys.useCaseSensitiveFileNames ? fileName : fileName.toLowerCase();
- },
- getNewLine: function () {
- return ts.sys.newLine;
- },
- useCaseSensitiveFileNames: function () {
- return ts.sys.useCaseSensitiveFileNames;
- },
- fileExists: fileExists,
- readFile: readFile,
- directoryExists: function (path) {
- return ts.sys.directoryExists(path);
- }
- };
-
- function fileExists(fileName) {
- return ts.sys.fileExists(fileName);
- }
-
- function readFile(fileName) {
- return ts.sys.readFile(fileName);
- }
-
- function getSourceFile(fileName, languageVersion, onError) {
- var sourceText = ts.sys.readFile(fileName);
- return sourceText !== undefined ? ts.createSourceFile(
- fileName, sourceText, languageVersion, false, ts.ScriptKind.TS) : undefined;
- }
-}
-
-function checkValidName(name) {
- let firstLetter = name[0].toLocaleUpperCase();
- return name.toLocaleUpperCase() != name && firstLetter == name[0] && firstLetter != '_' && firstLetter != '$'
- && !excludeClasses.includes(name);
-}
-
-var logs = '';
-
-/** Generate documentation for all classes in a set of .js files */
-function generateAnnotations(path, options, output = {}) {
- add(path[0]);
-
- function add(path) {
- try {
- var stat = fs.statSync(path);
- } catch (e) {
- return;
- }
- if (stat.isFile() && /\.js$/.test(path)) {
- var fileArr = [];
- fileArr.push(path);
- if (/test/.test(path) || /vim.js$/.test(path)) return;
- if (/src\/mode\/(?!behaviour|folding|text.js|text_highlight_rules.js)/.test(path)) return;
- if (/\.(css|snippets)\.js$/.test(path)) return;
-
- var docs = generateDocumentation(fileArr, options);
- //prefer Classes with jsDoc
- for (var a in docs) {
- if (output[a] && output[a].jsDoc && Array(output[a].jsDoc) && output[a].jsDoc.length > 0) {
- delete docs[a].jsDoc;
- delete docs[a].sourceName;
- delete docs[a].line;
- delete docs[a].construct;
- }
- }
- output = mergeGeneratedObjects(output, docs);
-
- console.log(path + " finished" + EOL);
- }
- else if (stat.isDirectory()) {
- var files = fs.readdirSync(path).sort();
- files.forEach(function (name) {
- if (/\s/.test(name)) return;
- add(path + "/" + name);
- });
- }
- }
-
- var dir = "generated";
- if (!fs.existsSync(dir)) {
- fs.mkdirSync(dir);
- }
-
- fs.writeFileSync(dir + "/classes.json", JSON.stringify(output, undefined, 4));
- fs.writeFileSync(dir + "/annotations.log", logs);
-}
-
-function mergeGeneratedObjects() {
- for (var i = 1; i < arguments.length; i++) for (var a in arguments[i]) {
- if (!arguments[0][a]) {
- arguments[0][a] = {};
- }
- for (var b in arguments[i][a]) {
- arguments[0][a][b] = arguments[i][a][b];
- }
- }
-
- return arguments[0];
-}
-
-function generateDocumentation(fileNames, options, identifiers = []) {
- // Build a program using the set of root file names in fileNames
- var host = createCompilerHost(options);
- var program = ts.createProgram(fileNames, options, host);
- // Get the checker, we will use it to find more about classes
- var checker = program.getTypeChecker();
- var output = {};
-
- // Visit every sourceFile in the program
- for (var _i = 0, _a = program.getSourceFiles(); _i < _a.length; _i++) {
- var sourceFile = _a[_i];
- if (!sourceFile.isDeclarationFile) {
- // Walk the tree to search for classes
- ts.forEachChild(sourceFile, visit);
- ts.createPrinter()
- }
- }
-
- return output;
-
- /** visit nodes finding classes with methods/events/constructors*/
- function visit(node) {
- var docs = [];
- if (ts.isPropertyAssignment(node) && node.parent && ts.isObjectLiteralExpression(node.parent)
- && node.parent.parent && ts.isCallExpression(node.parent.parent)) {
- findNames(node.parent.parent);
- if (identifiers.indexOf('defineOptions') !== -1) {
- var symbol = checker.getSymbolAtLocation(node.name);
- if (symbol) {
- let type = checker.getTypeOfSymbolAtLocation(symbol, symbol.valueDeclaration);
- var typeString = checker.typeToString(type);
- if (typeString !== "string") {
- let currentLine = ts.getLineAndCharacterOfPosition(sourceFile, node.getStart()).line + 1;
- identifiers.splice(identifiers.indexOf('require'), 1);
- identifiers.splice(identifiers.indexOf('config'), 1);
- identifiers.splice(identifiers.indexOf('defineOptions'), 1);
- let className = identifiers[0] + 'Options';
- let propertyName = findName(node).escapedText + '_prop';
- let params = {"return": "any"};
- //TODO: maybe there is a method to get normal type without initialValue check
- for (let i = 0; i < type.properties.length; i++) {
- if (type.properties[i].escapedName == 'initialValue') {
- params["return"] = checker.typeToString(type.properties[i].type);
- }
- }
-
- if (node.jsDoc) {
- let jsDoc = [];
- for (var k = 0; k < node.jsDoc.length; k++) {
- let jsDocText = node.jsDoc[k].getFullText();
- jsDoc.push(jsDocText);
- }
- docs = jsDoc;
- }
- if (!output[className]) {
- output[className] = {};
- }
- if (!output[className].hasOwnProperty(propertyName)) {
- output[className][propertyName] = {
- line: currentLine,
- jsDoc: docs,
- sourceName: fileNames[0],
- params: params
- }
- }
- else {
- logs = logs + "Duplicate property '" + propertyName + "' determinator. Class: " + className
- + ". Filename: " + fileNames[0] + ":" + currentLine + ". First implementation: "
- + output[className][propertyName].sourceName + ":"
- + output[className][propertyName].line + EOL;
- }
- }
- }
- identifiers.length = 0;
- }
- }
- else if (ts.isVariableStatement(node) || ts.isFunctionDeclaration(node) || ts.isClassDeclaration(node)) {
- let className = findName(node).escapedText;
- if (checkValidName(className) === true) {
- findNames(node);
- if (identifiers.indexOf('require') == -1) {
- let currentLine = ts.getLineAndCharacterOfPosition(sourceFile, node.getStart()).line + 1;
-
- let allDocs = getAllJsDocs(node, currentLine);
- let construct = allDocs.construct;
- let events = allDocs.events;
- docs = allDocs.docs;
-
- getPropertiesOfClass(node);
-
- output[className] = {
- line: currentLine,
- jsDoc: docs,
- sourceName: fileNames[0],
- construct: construct
- };
-
- if (Object.keys(events).length !== 0 && events.constructor === Object) {
- output[className] = mergeGeneratedObjects(output[className], events);
- }
- if (Object.keys(propObjects).length !== 0 && propObjects.constructor === Object) {
- output[className] = mergeGeneratedObjects(output[className], propObjects);
- }
-
- }
- }
- } else if (ts.isMethodDeclaration(node) || ts.isConstructorDeclaration(node)) {
- let methodName;
- if (ts.isConstructorDeclaration(node)) {
- methodName = "construct"
- } else {
- methodName = node.name.escapedText;
- }
- let currentLine = ts.getLineAndCharacterOfPosition(sourceFile, node.getStart()).line + 1;
- let className = node.parent.name.escapedText;
- if (className && checkValidName(className) === true) {
- let params = getParametersFromNode(node);
- let allDocs = getAllJsDocs(node, currentLine, params);
- let events = allDocs.events;
- docs = allDocs.docs;
-
- if (!output[className]) {
- output[className] = {};
- }
- if (!output[className].hasOwnProperty(methodName) || methodName == "construct") {
- output[className][methodName] = {
- line: currentLine,
- jsDoc: docs,
- sourceName: fileNames[0],
- params: params
- }
- }
- else {
- logs = logs + "Duplicate function '" + methodName + "' determinator. Class: " + className
- + ". Filename: " + fileNames[0] + ":" + currentLine + ". First implementation: "
- + output[className][methodName].sourceName + ":" + output[className][methodName].line
- + EOL;
- }
-
- if (Object.keys(events).length !== 0 && events.constructor === Object) {
- output[className] = mergeGeneratedObjects(output[className], events);
- }
- }
- }
- else if (ts.isFunctionExpression(node) && node.parent && node.parent.parent && ts.isBinaryExpression(
- node.parent) && (ts.isExpressionStatement(node.parent.parent) || ts.isBinaryExpression(
- node.parent.parent))) {
- let functionName = findName(node.parent).escapedText;
- let secondFunctionName;
- let currentLine = ts.getLineAndCharacterOfPosition(sourceFile, node.parent.parent.getStart()).line + 1;
- let expStatNode;
- if (ts.isBinaryExpression(node.parent.parent)) {
- expStatNode = node.parent.parent.parent;
- secondFunctionName = findName(expStatNode).escapedText;
- }
- else {
- expStatNode = node.parent.parent;
- }
-
-
- let findNode = expStatNode;
- do {
- findNode = findNode.parent;
- } while (findNode && !ts.isSourceFile(findNode) && !ts.isCallExpression(findNode)
- && !ts.isFunctionDeclaration(findNode));
-
- if (findNode && !ts.isSourceFile(findNode) && findName(findNode).escapedText !== "define") {
- findNames(findNode);
- identifiers.splice(identifiers.indexOf('call'), 1);
- while (identifiers.indexOf('prototype') !== -1) {
- identifiers.splice(identifiers.indexOf('prototype'), 1);
- }
-
- let params = getParametersFromNode(node);
- let allDocs = getAllJsDocs(expStatNode, currentLine, params);
- let events = allDocs.events;
- docs = allDocs.docs;
-
- var className;
- if (ts.isFunctionDeclaration(findNode)) {
- className = identifiers[0];
- }
- else {
- className = identifiers[identifiers.length - 1];
- }
-
- if (className && checkValidName(className) === true) {
- if (!output[className]) {
- output[className] = {};
- }
- if (!output[className].hasOwnProperty(functionName)) {
- output[className][functionName] = {
- line: currentLine,
- jsDoc: docs,
- sourceName: fileNames[0],
- params: params
- }
- }
- else {
- logs = logs + "Duplicate function '" + functionName + "' determinator. Class: " + className
- + ". Filename: " + fileNames[0] + ":" + currentLine + ". First implementation: "
- + output[className][functionName].sourceName + ":" + output[className][functionName].line
- + EOL;
- }
- if (secondFunctionName) {
- if (!output[className].hasOwnProperty(secondFunctionName)
- || output[className][secondFunctionName] == undefined) {
- output[className][secondFunctionName] = {
- line: currentLine,
- jsDoc: docs,
- sourceName: fileNames[0],
- params: params
- }
- }
- else {
- logs = logs + "Duplicate function '" + secondFunctionName + "' determinator. Class: "
- + className + ". Filename: " + fileNames[0] + ":" + currentLine
- + ". First implementation: " + output[className][secondFunctionName].sourceName + ":"
- + output[className][secondFunctionName].line + EOL;
- }
- }
-
- if (Object.keys(events).length !== 0 && events.constructor === Object) {
- output[className] = mergeGeneratedObjects(output[className], events);
- }
- }
- identifiers.length = 0;
- }
- }
- else if (ts.isPropertyAccessExpression(node) && node.parent && node.parent.parent && ts.isBinaryExpression(
- node.parent) && ts.isExpressionStatement(node.parent.parent)) {
- let currentLine = ts.getLineAndCharacterOfPosition(sourceFile, node.parent.parent.getStart()).line + 1;
-
- ts.forEachChild(node, findNames);
- if (identifiers.length == 2 || identifiers.length == 3) {
- if (identifiers.indexOf('prototype') !== -1) identifiers.splice(identifiers.indexOf('prototype'), 1);
- let className = identifiers[0];
- let functionName = identifiers[identifiers.length - 1];
- if (checkValidName(className) === true && functionName != 'prototype' && (ts.isFunctionExpression(
- node.parent.right) || (ts.isBinaryExpression(node.parent.right) && ts.isFunctionExpression(
- node.parent.right.right)))) {
- let functionNode;
- if (ts.isFunctionExpression(node.parent.right)) {
- functionNode = node.parent.right;
- }
- else {
- functionNode = node.parent.right.right;
- }
-
- let params = getParametersFromNode(functionNode);
- let allDocs = getAllJsDocs(node.parent.parent, currentLine, params);
- let events = allDocs.events;
- docs = allDocs.docs;
-
- if (!output[className]) {
- output[className] = {};
- }
-
- if (!output[className].hasOwnProperty(functionName)) {
- output[className][functionName] = {
- line: currentLine,
- jsDoc: docs,
- sourceName: fileNames[0],
- params: params
- }
- }
- else {
- logs = logs + "Duplicate function '" + functionName + "' determinator. Class: " + className
- + ". Filename: " + fileNames[0] + ":" + currentLine + ". First implementation: "
- + output[className][functionName].sourceName + ":" + output[className][functionName].line
- + EOL;
- }
-
- identifiers.length = 0;
- if (Object.keys(events).length !== 0 && events.constructor === Object) {
- output[className] = mergeGeneratedObjects(output[className], events);
- }
- }
- }
- }
- propObjects = {};
- ts.forEachChild(node, visit);
- identifiers.length = 0;
-
- }
-
- /**
- *
- * @param node
- * @param {number} currentLine
- * @param [params]
- * @return {{docs: *[], construct: {}, events: {}}}
- */
- function getAllJsDocs(node, currentLine, params) {
- let docs = [];
- let construct;
- let events = {};
- if (node.jsDoc) {
- let jsDoc = [];
- for (var k = 0; k < node.jsDoc.length; k++) {
- let jsDocText = node.jsDoc[k].getFullText();
- if (/@constructor/.test(jsDocText)) {
- let params = getParametersFromJsDoc(node.jsDoc[k]);
- construct = {
- line: currentLine,
- jsDoc: [jsDocText],
- sourceName: fileNames[0],
- params: params
- }
- }
- else if (/@event/.test(jsDocText)) {
- let eventName = jsDocText.match(/@event ([\w]*)/)[1] + "_event";
- let eventLine = ts.getLineAndCharacterOfPosition(
- sourceFile, node.jsDoc[k].getStart()).line + 1;
- let params = getParametersFromJsDoc(node.jsDoc[k]);
- events[eventName] = {
- line: eventLine,
- jsDoc: [jsDocText],
- sourceName: fileNames[0],
- params: params
- }
- }
- else {
- jsDoc.push(jsDocText);
- if (params && Object.keys(params).length > 0) {
- for (let prop in params) {
- if (params[prop] == 'any' || params[prop] == '{}') {
- let paramTypeFromJsDoc = getParameterTypeFromJsDoc(node.jsDoc[k], prop);
- if (paramTypeFromJsDoc) {
- params[prop] = paramTypeFromJsDoc;
- }
- }
- }
-
- }
- }
- }
- docs = jsDoc;
- }
- var comment = transformCommentToJsDoc(node);
- if (comment) {
- docs.push(comment);
- }
- return {
- events,
- docs,
- construct
- };
- }
-
- function getPropertiesOfClass(node) {
- if (ts.isIdentifier(node) && node.parent && node.parent.expression && node.parent.expression.kind === 100
- && ts.isPropertyAccessExpression(node.parent) && node.parent.parent && ts.isBinaryExpression(
- node.parent.parent) && ts.isExpressionStatement(node.parent.parent.parent)) {
- let currentLine = ts.getLineAndCharacterOfPosition(sourceFile, node.parent.parent.parent.getStart()).line
- + 1;
- let params = {"return": "any"};
- let type = checker.typeToString(
- checker.getBaseTypeOfLiteralType(checker.getTypeAtLocation(node.parent.parent)));
- let name = node.escapedText + "_prop";
- if (type) {
- params["return"] = type;
- }
- let docs = [];
- if (node.parent.parent.parent.jsDoc) {
- let jsDoc = [];
- for (var k = 0; k < node.parent.parent.parent.jsDoc.length; k++) {
- let jsDocText = node.parent.parent.parent.jsDoc[k].getFullText();
- jsDoc.push(jsDocText);
- }
- docs = jsDoc;
- }
- propObjects[name] = {
- line: currentLine,
- jsDoc: docs,
- sourceName: fileNames[0],
- params: params
- }
- }
- else {
- ts.forEachChild(node, getPropertiesOfClass);
- }
- }
-
- function transformCommentToJsDoc(node) {
-
- let party = ts.getLeadingCommentRanges(sourceFile.getFullText(), node.getFullStart());
- if (party) {
- var al = sourceFile.getFullText().substring(party[0].pos, party[0].end);
- if (al && !/^\/\*\*/g.test(al) && !/Copyright/g.test(al)) {
- var comment;
- if (/^\/\*/g.test(al)) {
- comment = al.replace(/^[/][*]/g, '/**');
- comment = comment.replace(/[*][/]$/g, '**/');
- }
- else if (/^[/][/]/g.test(al)) {
- comment = al.replace(/^[/][/]/g, '/**');
- comment = comment + '**/';
- }
- return comment;
- }
- }
- }
-
- function getParametersFromNode(node) {
- if (!node.parameters) return ;
- let signature = checker.getSignatureFromDeclaration(node);
- let returnType = checker.getReturnTypeOfSignature(signature);
- let params = {
- return: !ts.isConstructorDeclaration(node) ? checker.typeToString(returnType) : undefined
- };
- if (node.parameters && node.parameters.length > 0) {
- for (let i = 0; i < node.parameters.length; i++) {
- params[node.parameters[i].name.escapedText] = checker.typeToString(
- checker.getTypeAtLocation(node.parameters[i]));
- }
- }
- return params;
- }
-
- function getParameterTypeFromJsDoc(jsDocNode, paramName) {
- if (jsDocNode.tags && jsDocNode.tags.length > 0) {
- for (var i = 0; i < jsDocNode.tags.length; i++) {
- if ((jsDocNode.tags[i].tagName.escapedText === 'param' && jsDocNode.tags[i].name.escapedText
- === paramName) || ((jsDocNode.tags[i].tagName.escapedText === 'return'
- || jsDocNode.tags[i].tagName.escapedText === 'returns') && paramName === 'return')) {
- if (jsDocNode.tags[i].typeExpression) {
- let optional = "";
- if (jsDocNode.tags[i].isBracketed === true) {
- optional = "?";
- }
-
- var paramType = jsDocNode.tags[i].typeExpression.getFullText();
- paramType = paramType.substring(1, paramType.length - 1) + optional;
- return (paramType === "Array") ? "any[]" : paramType;
- }
- }
- }
- }
- }
-
- function getParametersFromJsDoc(jsDocNode) {
- let params = {};
- if (jsDocNode.tags && jsDocNode.tags.length > 0) {
- for (var i = 0; i < jsDocNode.tags.length; i++) {
- if ((jsDocNode.tags[i].tagName.escapedText === 'param') || (jsDocNode.tags[i].tagName.escapedText
- === 'return' || jsDocNode.tags[i].tagName.escapedText === 'returns')) {
- if (jsDocNode.tags[i].typeExpression) {
- let name = '';
- if (jsDocNode.tags[i].name) {
- name = jsDocNode.tags[i].name.escapedText;
- }
- else {
- name = "return";
- }
- let optional = "";
- if (jsDocNode.tags[i].isBracketed === true) {
- optional = "?";
- }
- var paramType = jsDocNode.tags[i].typeExpression.getFullText();
- params[name] = paramType.substring(1, paramType.length - 1) + optional;
- }
- }
- }
- }
- return params;
- }
-
- function findName(node) {
- if (ts.isIdentifier(node)) {
- return node;
- }
- else {
- var result = ts.forEachChild(node, findName);
- if (result) return result;
- }
-
- }
-
- function findNames(node) {
- if (ts.isIdentifier(node)) {
- identifiers.push(node.escapedText);
- }
- else {
- ts.forEachChild(node, findNames);
- }
- }
-
-}
-
-generateAnnotations(process.argv.slice(2), {
- target: ts.ScriptTarget.ES5,
- module: ts.ModuleKind.CommonJS,
- allowJs: true,
- lib: [],
- types: []
-});
diff --git a/generateDoc.js b/generateDoc.js
index 7aced577..a4a208fe 100644
--- a/generateDoc.js
+++ b/generateDoc.js
@@ -1,31 +1,15 @@
-var acegitlink = require("./AceGitLinkPlugin").AceGitLinkPlugin;
-var borrowsTag = require("./BorrowsTagPlugin").BorrowsTagPlugin;
var typedoc = require('typedoc');
-const fs = require("fs");
-var options = JSON.parse(fs.readFileSync("generator-options.json", "utf8").toString());
-var settings = {
- "name": options["title"],
- "readme": options["readme"],
- "entryPoints": options["entryPoints"]
-};
+async function main() {
+ const app = await typedoc.Application.bootstrapWithPlugins();
+ var gitLink = "https://github.com/ajaxorg/ace/tree/" + process.env.ACE_VERSION + "/{path}#{line}";
+ app.options.setValue("sourceLinkTemplate", gitLink);
-var app = new typedoc.Application();
-app.bootstrap(settings);
-app.options.setCompilerOptions(options["entryPoints"], {
- "module": "commonjs",
- "target": "es5",
- "sourceMap": false,
- "ignoreCompilerErrors": true
-})
-app.options.addDeclaration({name: 'acegitlink'});
-app.converter.addComponent('acegitlink', acegitlink);
-app.renderer.addComponent('borrowstag', borrowsTag);
-var gitLink = options["gitLink"];
-if (gitLink.charAt(gitLink.length - 1) !== '/') gitLink += '/';
-gitLink += process.env.ACE_VERSION + "/";
+ const projectReflection = await app.convert();
-app.options.setValue("acegitlink", gitLink);
-var projectReflection = app.convert();
+ if (projectReflection) {
+ await app.generateDocs(projectReflection, process.argv[2] || "doc");
+ }
+}
-app.generateDocs(projectReflection, process.argv[2]);
\ No newline at end of file
+main();
diff --git a/generateNewDts.js b/generateNewDts.js
deleted file mode 100644
index 4a32e016..00000000
--- a/generateNewDts.js
+++ /dev/null
@@ -1,477 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {value: true});
-var ts = require("typescript");
-var fs = require("fs");
-const EOL = '\n';
-var logs = '';
-var edits = [];
-var foundClassName = '';
-var dir = "generated";
-if (!fs.existsSync(dir)) {
- fs.mkdirSync(dir);
-}
-
-function createLanguageServiceHost(options) {
- return {
- files: {},
- addFile(fileName, text) {
- this.files[fileName] = ts.ScriptSnapshot.fromString(text);
- },
- "getCompilationSettings": function () {
- return ts.getDefaultCompilerOptions();
- },
- "getScriptFileNames": function () {
- return Object.keys(this.files);
- },
- "getScriptVersion": function (_fileName) {
- return "0";
- },
- "getScriptSnapshot": function (fileName) {
- return this.files[fileName];
- },
- "getCurrentDirectory": function () {
- return process.cwd();
- },
- "getDefaultLibFileName": function () {
- return ts.getDefaultLibFilePath(options);
- }
- };
-
-}
-
-function createDefaultFormatCodeSettings() {
- return {
- baseIndentSize: 0,
- indentSize: 4,
- tabSize: 4,
- indentStyle: ts.IndentStyle.Smart,
- newLineCharacter: EOL,
- convertTabsToSpaces: true,
- insertSpaceAfterCommaDelimiter: true,
- insertSpaceAfterSemicolonInForStatements: true,
- insertSpaceBeforeAndAfterBinaryOperators: true,
- insertSpaceAfterConstructor: false,
- insertSpaceAfterKeywordsInControlFlowStatements: true,
- insertSpaceAfterFunctionKeywordForAnonymousFunctions: false,
- insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: false,
- insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: false,
- insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces: true,
- insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: false,
- insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces: false,
- insertSpaceAfterTypeAssertion: false,
- insertSpaceBeforeFunctionParenthesis: false,
- placeOpenBraceOnNewLineForFunctions: false,
- placeOpenBraceOnNewLineForControlBlocks: false,
- insertSpaceBeforeTypeAnnotation: false
- };
-}
-
-function formatDts(filename, text, options) {
- var host = createLanguageServiceHost(options);
- host.addFile(filename, text);
- const languageService = ts.createLanguageService(host);
- let formatEdits = languageService.getFormattingEditsForDocument(filename, createDefaultFormatCodeSettings());
- formatEdits
- .sort((a, b) => a.span.start - b.span.start)
- .reverse()
- .forEach(edit => {
- const head = text.slice(0, edit.span.start);
- const tail = text.slice(edit.span.start + edit.span.length);
- text = `${head}${edit.newText}${tail}`;
- });
- return text;
-}
-
-function generateDocumentation(fileNames, options) {
-
- function print(node) {
- if (node.parent && (ts.isInterfaceDeclaration(node.parent) || ts.isClassDeclaration(node.parent))
- && ts.isIdentifier(node) && !node.parent.jsDoc) {
- let foundClass = findClassName(node.escapedText);
- foundClassName = node.escapedText;
- if (foundClass) {
- edits.push({
- pos: node.parent.pos,
- text: EOL + jsDocPrettify(foundClass)
- });
- }
- else {
- let currentLine = ts.getLineAndCharacterOfPosition(sourceFile, node.parent.getStart()).line + 1;
- classes[foundClassName] = {
- line: currentLine,
- jsDoc: [],
- sourceName: fileNames[0].match(/ace\.d\.ts/)[0],
- described: true
- };
- }
- }
- else {
- if (ts.isConstructorDeclaration(node)) {
- let foundConstructor = findConstructorName();
- if (foundConstructor) {
- edits.push({
- pos: node.pos,
- text: EOL + jsDocPrettify(foundConstructor)
- });
- }
- else {
- let currentLine = ts.getLineAndCharacterOfPosition(sourceFile, node.getStart()).line + 1;
- classes[foundClassName]["construct"] = {
- line: currentLine,
- jsDoc: [],
- sourceName: fileNames[0].match(/ace\.d\.ts/)[0],
- described: true
- };
- }
- }
- else {
- if (node.parent && (ts.isMethodSignature(node.parent) || ts.isMethodDeclaration(node.parent))
- && ts.isParameter(node) && node.type && node.type.literal) {
- let foundEvent = eventResolver(node.type.literal.text);
- if (foundEvent) {
- edits.push({
- pos: node.parent.pos,
- text: EOL + jsDocPrettify(foundEvent)
- });
- }
- else {
- let currentLine = ts.getLineAndCharacterOfPosition(sourceFile, node.parent.getStart()).line + 1;
- classes[foundClassName][node.type.literal.text + "_event"] = {
- line: currentLine,
- jsDoc: [],
- sourceName: fileNames[0].match(/ace\.d\.ts/)[0],
- described: true
- };
- }
- }
- else {
- if (node.parent && (ts.isMethodSignature(node.parent) || ts.isMethodDeclaration(node.parent))
- && ts.isIdentifier(node)) {
- let foundMethod = methodResolver(node.escapedText);
- if (foundMethod) {
- edits.push({
- pos: node.parent.pos,
- text: EOL + jsDocPrettify(foundMethod)
- });
- }
- else {
- let currentLine = ts.getLineAndCharacterOfPosition(sourceFile, node.parent.getStart()).line
- + 1;
- classes[foundClassName][node.escapedText] = {
- line: currentLine,
- jsDoc: [],
- sourceName: fileNames[0].match(/ace\.d\.ts/)[0],
- described: true
- };
- }
- }
- else {
- if (node.parent && node.parent.parent && (ts.isInterfaceDeclaration(node.parent.parent)
- || ts.isClassDeclaration(node.parent.parent)) && (ts.isPropertySignature(node.parent)
- || ts.isPropertyDeclaration(node.parent)) && ts.isIdentifier(node)) {
- let foundProperty = propertyResolver(node.escapedText);
- if (foundProperty) {
- edits.push({
- pos: node.parent.pos,
- text: EOL + jsDocPrettify(foundProperty)
- });
- }
- else {
- if (foundClassName) {
- let currentLine = ts.getLineAndCharacterOfPosition(
- sourceFile, node.parent.getStart()).line + 1;
- classes[foundClassName][node.escapedText + "_prop"] = {
- line: currentLine,
- jsDoc: [],
- sourceName: fileNames[0].match(/ace\.d\.ts/)[0],
- described: true
- };
- }
- }
- }
- }
- }
- }
- }
- ts.forEachChild(node, print);
- }
-
- function methodResolver(methodName) {
- if (classes[foundClassName] && classes[foundClassName][methodName]) {
- classes[foundClassName][methodName].described = true;
- return classes[foundClassName][methodName];
- }
- }
-
- function eventResolver(eventName) {
- if (classes[foundClassName] && classes[foundClassName][eventName + "_event"]) {
- classes[foundClassName][eventName + "_event"].described = true;
- return classes[foundClassName][eventName + "_event"];
- }
- }
-
- function propertyResolver(propName) {
- if (classes[foundClassName] && classes[foundClassName][propName + "_prop"]) {
- classes[foundClassName][propName + "_prop"].described = true;
- return classes[foundClassName][propName + "_prop"];
- }
- }
-
- function findClassName(identifierName) {
- for (var className in classes) {
- if (className == identifierName) {
- classes[identifierName].described = true;
- return classes[className];
- }
- }
- }
-
- function findConstructorName() {
- if (classes[foundClassName] && classes[foundClassName]["construct"]) {
- classes[foundClassName]["construct"].described = true;
- return classes[foundClassName]["construct"];
- }
- }
-
- var program = ts.createProgram(fileNames, options);
- var checker = program.getTypeChecker();
-
- for (var _i = 0, _a = program.getSourceFiles(); _i < _a.length; _i++) {
- var sourceFile = _a[_i];
- ts.forEachChild(sourceFile, print);
- }
-}
-
-function jsDocPrettify(aceObject) {
- let jsDoc = '';
- if (aceObject && aceObject.jsDoc) {
- for (var k = 0; k < aceObject.jsDoc.length; k++) {
- jsDoc = jsDoc + aceObject.jsDoc[k] + EOL;
- }
- }
- jsDoc = jsDoc.replace(/\s{2,}/g, EOL + ' ');
- return jsDoc;
-}
-
-function implicitlyCreateClasses(content, withJsDoc) {
- for (var className in classes) {
- if (!classes[className].described) {
- let regExp = new RegExp('namespace Ace\\s*{\\s*' + EOL, 'g');
- let match = regExp.exec(content);
- if (regExp.lastIndex != 0) {
- let jsDoc = '';
- if (withJsDoc) {
- jsDoc = jsDocPrettify(classes[className]);
- }
- edits.push({
- pos: regExp.lastIndex,
- text: jsDoc + "export class " + className + " {" + EOL + "}" + EOL + EOL
- });
- }
-
- logs = logs + "No such class name '" + className + "' in declaration file. Implicitly created." + EOL;
- }
- }
-}
-
-function implictlyCreateLowLevelDeclarations(content, withJsDoc) {
- for (var className in classes) {
- for (var method in classes[className]) {
- let regExp, match;
- //this would ignore all internal methods started with $
- if (method !== 'jsDoc' && !/^\$/.test(method) && classes[className][method] === Object(
- classes[className][method])) {
- if (!classes[className][method].described) {
- switch (true) {
- case /_prop/.test(method):
- let propName = method.match(/([\w$]*)_prop/)[1];
- regExp = new RegExp('(class|interface) ' + className + ' [^{]*', 'gm');
- match = regExp.exec(content);
- if (regExp.lastIndex != 0) {
- let type;
- if (classes[className][method].params) {
- type = classes[className][method].params["return"];
- }
- else {
- type = "any";
- }
- let jsDoc = '';
- if (withJsDoc) {
- jsDoc = jsDocPrettify(classes[className][method]);
- }
- edits.push({
- pos: regExp.lastIndex + 2,
- text: jsDoc + "" + propName + ": " + type + ";" + EOL
- });
- }
- logs = logs + "No such property name '" + propName + "' in declaration file. Class: "
- + className + ". Implicitly created." + EOL;
- break;
- case /_event/.test(method):
- let eventName = method.match(/([\w$]*)_event/)[1];
- regExp = new RegExp('(class|interface) ' + className + ' [^{]*', 'gm');
- match = regExp.exec(content);
- if (regExp.lastIndex != 0) {
- let allParams = [];
- if (classes[className][method].params) {
- for (let prop in classes[className][method].params) {
- allParams.push(prop + ": " + classes[className][method].params[prop]);
- }
- }
- let callbackExpr;
- if (allParams.length > 0) {
- callbackExpr = ", callback: (" + allParams.join(', ') + ") => void";
- }
- else {
- callbackExpr = "";
- }
- let jsDoc = '';
- if (withJsDoc) {
- jsDoc = jsDocPrettify(classes[className][method]);
- }
- edits.push({
- pos: regExp.lastIndex + 2,
- text: jsDoc + "on(name: '" + eventName + "'" + callbackExpr + "): void" + ";" + EOL
- });
- }
- logs = logs + "No such event name '" + eventName + "' in declaration file. Class: "
- + className + ". Implicitly created." + EOL;
- break;
- case (method === "construct"):
- regExp = new RegExp('(class|interface) ' + className + ' [^{]*', 'gm');
- match = regExp.exec(content);
- if (regExp.lastIndex != 0) {
- let allParams = [];
- let returnType = '';
- if (classes[className][method].params) {
- for (let prop in classes[className][method].params) {
- let paramType;
- let questionMark;
- if (classes[className][method].params[prop][classes[className][method].params[prop].length
- - 1] == "?") {
- paramType = classes[className][method].params[prop].substring(
- 0, classes[className][method].params[prop].length - 1);
- questionMark = '?';
- }
- else {
- paramType = classes[className][method].params[prop];
- questionMark = '';
- }
- if (prop == 'return') {
- returnType = questionMark + ": " + paramType;
- }
- else {
- allParams.push(prop + questionMark + ": " + paramType);
- }
- }
- }
- let jsDoc = '';
- if (withJsDoc) {
- jsDoc = jsDocPrettify(classes[className][method]);
- }
- edits.push({
- pos: regExp.lastIndex + 2,
- text: jsDoc + "constructor(" + allParams.join(', ') + ")" + returnType + ";" + EOL
- });
- }
- logs = logs + "No constructor in declaration file. Class: " + className
- + ". Implicitly created." + EOL;
- break;
- default:
- regExp = new RegExp('(class|interface) ' + className + ' [^{]*', 'gm');
- match = regExp.exec(content);
- if (regExp.lastIndex != 0) {
- let allParams = [];
- let returnType = '';
- if (classes[className][method].params) {
- for (let prop in classes[className][method].params) {
- let paramType;
- let questionMark;
- if (classes[className][method].params[prop][classes[className][method].params[prop].length
- - 1] == "?") {
- paramType = classes[className][method].params[prop].substring(
- 0, classes[className][method].params[prop].length - 1);
- questionMark = '?';
- }
- else {
- paramType = classes[className][method].params[prop];
- questionMark = '';
- }
- if (prop == 'return') {
- returnType = questionMark + ": " + paramType;
- }
- else {
- allParams.push(prop + questionMark + ": " + paramType);
- }
- }
- }
- let jsDoc = '';
- if (withJsDoc) {
- jsDoc = jsDocPrettify(classes[className][method]);
- }
- edits.push({
- pos: regExp.lastIndex + 2,
- text: jsDoc + method + "(" + allParams.join(', ') + ")" + returnType + ";" + EOL
- });
- }
-
- logs = logs + "No such method name '" + method + "' in declaration file. Class: "
- + className + ". Implicitly created." + EOL;
- break;
- }
- }
- }
- }
- }
- fs.writeFileSync(dir + "/declarations.log", logs);
-}
-
-function applyEditsToFile(filename, format) {
- var start = fs.readFileSync(filename, "utf8");
- var end = "";
- edits
- .sort((a, b) => b.pos - a.pos)
- .forEach(edit => {
- end = edit.text + start.slice(edit.pos) + end;
- start = start.slice(0, edit.pos);
- });
- end = start + end;
- if (format) {
- end = formatDts(filename, end, options);
- }
- fs.writeFileSync(filename, end);
- return end;
-}
-
-fs.copyFileSync(process.argv[2], dir + "/ace.d.ts");
-var data = fs.readFileSync(dir + "/classes.json", "utf8");
-var classes = JSON.parse(data.toString());
-var options = {
- target: ts.ScriptTarget.ES5,
- module: ts.ModuleKind.CommonJS,
- allowJs: true,
- declaration: true,
- lib: [],
- "types": []
-};
-generateDocumentation([dir + "/ace.d.ts"], options, false);
-
-fs.writeFileSync(dir + "/classes.json", JSON.stringify(classes, undefined, 4));
-
-var content = applyEditsToFile(dir + "/ace.d.ts");
-edits = [];
-implicitlyCreateClasses(content, true);
-content = applyEditsToFile(dir + "/ace.d.ts");
-edits = [];
-implictlyCreateLowLevelDeclarations(content, true);
-applyEditsToFile(dir + "/ace.d.ts", true);
-
-fs.copyFileSync(process.argv[2], dir + "/ace-without-comments.d.ts");
-edits = [];
-content = fs.readFileSync(dir + "/ace-without-comments.d.ts", "utf8");
-implicitlyCreateClasses(content);
-content = applyEditsToFile(dir + "/ace-without-comments.d.ts");
-edits = [];
-implictlyCreateLowLevelDeclarations(content);
-applyEditsToFile(dir + "/ace-without-comments.d.ts", true);
diff --git a/generator-options.json b/generator-options.json
deleted file mode 100644
index b37b6b08..00000000
--- a/generator-options.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "title": "Ace API Reference",
- "readme": "assets/ace_readme.md",
- "entryPoints": [
- "generated/ace.d.ts"
- ],
- "gitLink": "https://github.com/ajaxorg/ace/tree/",
- "exclude": {
- "classes": [
- "Array",
- "Element",
- "Type",
- "AceEmmetEditor",
- "ApexMode",
- "PhpMode",
- "VisualforceMode",
- "PhpCompletions",
- "UnicodeTBL00",
- "UnicodeTBL20",
- "HtmlBehaviour",
- "HtmlCompletions",
- "ArabicAlefBetIntervalsBegine",
- "ArabicAlefBetIntervalsEnd",
- "DjangoHighlightRules",
- "DjangoHtmlHighlightRules",
- "EjsHighlightRules",
- "CssBehaviour",
- "CssCompletions",
- "CstyleBehaviour",
- "RazorCompletions",
- "LiquidBehaviour",
- "XmlBehaviour",
- "XQueryBehaviour",
- "Attr",
- "ClassList",
- "Node",
- "Object",
- "SnippetGroupHighlightRules",
- "SnippetHighlightRules",
- "Split",
- "Style",
- "Tag",
- "TestGenerator",
- "TextNode"
- ],
- "methods": []
- }
-}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 49baa1f9..03feda03 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,91 +8,31 @@
"name": "docgenerator-for-ace",
"version": "1.0.0",
"dependencies": {
- "typedoc": "0.21.10",
- "typescript": "^4.4.4"
+ "typedoc": "^0.25.3"
}
},
+ "node_modules/ansi-sequence-parser": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz",
+ "integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg=="
+ },
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "balanced-match": "^1.0.0"
}
},
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
- },
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
- },
- "node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/handlebars": {
- "version": "4.7.7",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
- "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
- "dependencies": {
- "minimist": "^1.2.5",
- "neo-async": "^2.6.0",
- "source-map": "^0.6.1",
- "wordwrap": "^1.0.0"
- },
- "bin": {
- "handlebars": "bin/handlebars"
- },
- "engines": {
- "node": ">=0.4.7"
- },
- "optionalDependencies": {
- "uglify-js": "^3.1.4"
- }
- },
- "node_modules/inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
"node_modules/jsonc-parser": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz",
- "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg=="
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
+ "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w=="
},
"node_modules/lunr": {
"version": "2.3.9",
@@ -100,9 +40,9 @@
"integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow=="
},
"node_modules/marked": {
- "version": "4.0.18",
- "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.18.tgz",
- "integrity": "sha512-wbLDJ7Zh0sqA0Vdg6aqlbT+yPxqLblpAZh1mK2+AO2twQkPywvvqQNfEPVwSSRjZ7dZcdeVBIAgiO7MMp3Dszw==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz",
+ "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==",
"bin": {
"marked": "bin/marked.js"
},
@@ -111,213 +51,97 @@
}
},
"node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
"dependencies": {
- "brace-expansion": "^1.1.7"
+ "brace-expansion": "^2.0.1"
},
"engines": {
- "node": "*"
- }
- },
- "node_modules/minimist": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
- "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
- },
- "node_modules/neo-async": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
- },
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/progress": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
- "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
- "engines": {
- "node": ">=0.4.0"
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/shiki": {
- "version": "0.9.15",
- "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.15.tgz",
- "integrity": "sha512-/Y0z9IzhJ8nD9nbceORCqu6NgT9X6I8Fk8c3SICHI5NbZRLdZYFaB233gwct9sU0vvSypyaL/qaKvzyQGJBZSw==",
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.5.tgz",
+ "integrity": "sha512-1gCAYOcmCFONmErGTrS1fjzJLA7MGZmKzrBNX7apqSwhyITJg2O102uFzXUeBxNnEkDA9vHIKLyeKq0V083vIw==",
"dependencies": {
- "jsonc-parser": "^3.0.0",
- "vscode-oniguruma": "^1.6.1",
- "vscode-textmate": "5.2.0"
- }
- },
- "node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "engines": {
- "node": ">=0.10.0"
+ "ansi-sequence-parser": "^1.1.0",
+ "jsonc-parser": "^3.2.0",
+ "vscode-oniguruma": "^1.7.0",
+ "vscode-textmate": "^8.0.0"
}
},
"node_modules/typedoc": {
- "version": "0.21.10",
- "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.21.10.tgz",
- "integrity": "sha512-Y0wYIehkjkPfsp3pv86fp3WPHUcOf8pnQUDLwG1PqSccUSqdsv7Pz1Gd5WrTJvXQB2wO1mKlZ8qW8qMiopKyjA==",
+ "version": "0.25.3",
+ "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.3.tgz",
+ "integrity": "sha512-Ow8Bo7uY1Lwy7GTmphRIMEo6IOZ+yYUyrc8n5KXIZg1svpqhZSWgni2ZrDhe+wLosFS8yswowUzljTAV/3jmWw==",
"dependencies": {
- "glob": "^7.1.7",
- "handlebars": "^4.7.7",
"lunr": "^2.3.9",
- "marked": "^4.0.10",
- "minimatch": "^3.0.0",
- "progress": "^2.0.3",
- "shiki": "^0.9.8",
- "typedoc-default-themes": "^0.12.10"
+ "marked": "^4.3.0",
+ "minimatch": "^9.0.3",
+ "shiki": "^0.14.1"
},
"bin": {
"typedoc": "bin/typedoc"
},
"engines": {
- "node": ">= 12.10.0"
+ "node": ">= 16"
},
"peerDependencies": {
- "typescript": "4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x"
- }
- },
- "node_modules/typedoc-default-themes": {
- "version": "0.12.10",
- "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.12.10.tgz",
- "integrity": "sha512-fIS001cAYHkyQPidWXmHuhs8usjP5XVJjWB8oZGqkTowZaz3v7g3KDZeeqE82FBrmkAnIBOY3jgy7lnPnqATbA==",
- "engines": {
- "node": ">= 8"
+ "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x"
}
},
"node_modules/typescript": {
- "version": "4.4.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz",
- "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==",
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
+ "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
+ "peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
- "node": ">=4.2.0"
- }
- },
- "node_modules/uglify-js": {
- "version": "3.16.3",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.3.tgz",
- "integrity": "sha512-uVbFqx9vvLhQg0iBaau9Z75AxWJ8tqM9AV890dIZCLApF4rTcyHwmAvLeEdYRs+BzYWu8Iw81F79ah0EfTXbaw==",
- "optional": true,
- "bin": {
- "uglifyjs": "bin/uglifyjs"
- },
- "engines": {
- "node": ">=0.8.0"
+ "node": ">=14.17"
}
},
"node_modules/vscode-oniguruma": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz",
- "integrity": "sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA=="
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz",
+ "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA=="
},
"node_modules/vscode-textmate": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz",
- "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ=="
- },
- "node_modules/wordwrap": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
- "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q=="
- },
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz",
+ "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg=="
}
},
"dependencies": {
+ "ansi-sequence-parser": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz",
+ "integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg=="
+ },
"balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
- },
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
- },
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "handlebars": {
- "version": "4.7.7",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
- "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
- "requires": {
- "minimist": "^1.2.5",
- "neo-async": "^2.6.0",
- "source-map": "^0.6.1",
- "uglify-js": "^3.1.4",
- "wordwrap": "^1.0.0"
- }
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"requires": {
- "once": "^1.3.0",
- "wrappy": "1"
+ "balanced-match": "^1.0.0"
}
},
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
"jsonc-parser": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz",
- "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg=="
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
+ "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w=="
},
"lunr": {
"version": "2.3.9",
@@ -325,111 +149,55 @@
"integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow=="
},
"marked": {
- "version": "4.0.18",
- "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.18.tgz",
- "integrity": "sha512-wbLDJ7Zh0sqA0Vdg6aqlbT+yPxqLblpAZh1mK2+AO2twQkPywvvqQNfEPVwSSRjZ7dZcdeVBIAgiO7MMp3Dszw=="
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz",
+ "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A=="
},
"minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "minimist": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
- "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
- },
- "neo-async": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
"requires": {
- "wrappy": "1"
+ "brace-expansion": "^2.0.1"
}
},
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
- },
- "progress": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
- "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
- },
"shiki": {
- "version": "0.9.15",
- "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.15.tgz",
- "integrity": "sha512-/Y0z9IzhJ8nD9nbceORCqu6NgT9X6I8Fk8c3SICHI5NbZRLdZYFaB233gwct9sU0vvSypyaL/qaKvzyQGJBZSw==",
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.5.tgz",
+ "integrity": "sha512-1gCAYOcmCFONmErGTrS1fjzJLA7MGZmKzrBNX7apqSwhyITJg2O102uFzXUeBxNnEkDA9vHIKLyeKq0V083vIw==",
"requires": {
- "jsonc-parser": "^3.0.0",
- "vscode-oniguruma": "^1.6.1",
- "vscode-textmate": "5.2.0"
+ "ansi-sequence-parser": "^1.1.0",
+ "jsonc-parser": "^3.2.0",
+ "vscode-oniguruma": "^1.7.0",
+ "vscode-textmate": "^8.0.0"
}
},
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- },
"typedoc": {
- "version": "0.21.10",
- "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.21.10.tgz",
- "integrity": "sha512-Y0wYIehkjkPfsp3pv86fp3WPHUcOf8pnQUDLwG1PqSccUSqdsv7Pz1Gd5WrTJvXQB2wO1mKlZ8qW8qMiopKyjA==",
+ "version": "0.25.3",
+ "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.3.tgz",
+ "integrity": "sha512-Ow8Bo7uY1Lwy7GTmphRIMEo6IOZ+yYUyrc8n5KXIZg1svpqhZSWgni2ZrDhe+wLosFS8yswowUzljTAV/3jmWw==",
"requires": {
- "glob": "^7.1.7",
- "handlebars": "^4.7.7",
"lunr": "^2.3.9",
- "marked": "^4.0.10",
- "minimatch": "^3.0.0",
- "progress": "^2.0.3",
- "shiki": "^0.9.8",
- "typedoc-default-themes": "^0.12.10"
+ "marked": "^4.3.0",
+ "minimatch": "^9.0.3",
+ "shiki": "^0.14.1"
}
},
- "typedoc-default-themes": {
- "version": "0.12.10",
- "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.12.10.tgz",
- "integrity": "sha512-fIS001cAYHkyQPidWXmHuhs8usjP5XVJjWB8oZGqkTowZaz3v7g3KDZeeqE82FBrmkAnIBOY3jgy7lnPnqATbA=="
- },
"typescript": {
- "version": "4.4.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz",
- "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA=="
- },
- "uglify-js": {
- "version": "3.16.3",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.3.tgz",
- "integrity": "sha512-uVbFqx9vvLhQg0iBaau9Z75AxWJ8tqM9AV890dIZCLApF4rTcyHwmAvLeEdYRs+BzYWu8Iw81F79ah0EfTXbaw==",
- "optional": true
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
+ "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
+ "peer": true
},
"vscode-oniguruma": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz",
- "integrity": "sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA=="
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz",
+ "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA=="
},
"vscode-textmate": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz",
- "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ=="
- },
- "wordwrap": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
- "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q=="
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz",
+ "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg=="
}
}
}
diff --git a/package.json b/package.json
index add1b2d1..46fbc632 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,6 @@
"name": "docgenerator-for-ace",
"version": "1.0.0",
"dependencies": {
- "typedoc": "0.21.10",
- "typescript": "^4.4.4"
+ "typedoc": "^0.25.3"
}
}
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 00000000..732fec51
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,54 @@
+{
+ "compilerOptions": {
+ "strict": false,
+ "noImplicitAny": false,
+ "skipLibCheck": true,
+ "module": "commonjs",
+ "target": "es2019",
+ "allowJs": true,
+ "checkJs": true,
+ "declaration": true,
+ "emitDeclarationOnly": true,
+ "outDir": "generated"
+ },
+ "exclude": [
+ "node_modules",
+ "../src/test/**/*",
+ "../src/**/*_test.js",
+ "../src/keyboard/vim.js",
+ "../src/keyboard/emacs.js",
+ "../src/keyboard/sublime.js",
+ "../src/keyboard/vscode.js",
+ "../src/mode/**/*",
+ "../ace-internal.d.ts",
+ "../src/snippets/**/*",
+ "../src/theme/**/*"
+ ],
+ "include": [
+ "../src/**/*",
+ "../ace.d.ts"
+ ],
+ "typedocOptions": {
+ "name": "Ace API Reference",
+ "readme": "assets/ace_readme.md",
+ "excludeReferences": true,
+ "sourceLinkExternal": true,
+ "entryPoints": [
+ "../src/**/*",
+ "../ace.d.ts"
+ ],
+ "exclude": [
+ "node_modules",
+ "../src/test/**/*",
+ "../src/**/*_test.js",
+ "../src/keyboard/vim.js",
+ "../src/keyboard/emacs.js",
+ "../src/keyboard/sublime.js",
+ "../src/keyboard/vscode.js",
+ "../src/mode/**/*",
+ "../ace-internal.d.ts",
+ "../src/snippets/**/*",
+ "../src/theme/**/*"
+ ]
+ }
+}