From 26587ce0dfd3f3155511ae3cac273f0d58f34dee Mon Sep 17 00:00:00 2001 From: vvakame Date: Sun, 19 Apr 2015 02:42:12 +0900 Subject: [PATCH] add atom/api-docs.d.ts --- atom/api-docs.d.ts | 107 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 atom/api-docs.d.ts diff --git a/atom/api-docs.d.ts b/atom/api-docs.d.ts new file mode 100644 index 0000000000..a4fc19eea1 --- /dev/null +++ b/atom/api-docs.d.ts @@ -0,0 +1,107 @@ +// Type definitions for Atom API docs +// Project: https://github.com/atom/atom/blob/master/build/tasks/docs-task.coffee +// Definitions by: vvakame +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/* + How to generate. + $ git clone git@github.com:atom/atom.git + $ cd atom + $ npm install + $ cd build + $ npm install + $ grunt build-docs + $ cd ../ + $ ls -la la docs/output/api.json + api.json example https://gist.github.com/vvakame/10f8d2f3884affc32476 + */ + +declare module AtomDocTypes { + interface Metadata { + classes: { [className: string]: ClassInfo; }; + } + + interface ClassInfo { + name: string; + superClass: string; + visibility: string; + + filename: string; + srcUrl: string; + summary: string; + description: string; + examples: Example[]; + sections: Section[]; + + classMethods: ClassMethod[]; + classProperties: ClassProperty[]; + instanceMethods: InstanceMethod[]; + instanceProperties: InstanceProperty[]; + } + + interface Example { + description: string; + lang: string; + code: string; + raw: string; + } + + interface Section { + name: string; + description: string; + } + + interface ClassMethod { + name: string; + sectionName: string; + srcUrl: string; + visibility: string; + summary: string; + description: string; + arguments: Argument[]; + returnValues: ReturnValue[]; + } + + interface ClassProperty { + } + + interface InstanceMethod { + name: string; + sectionName: string; + srcUrl: string; + visibility: string; + summary: string; + description: string; + arguments: Argument[]; + returnValues: ReturnValue[]; + titledArguments: TitledArgument[]; + } + + interface InstanceProperty { + name: string; + sectionName: string; + srcUrl: string; + visibility: string; + summary: string; + description: string; + } + + interface Argument { + name: string; + description: string; + type: string; + isOptional: boolean; + children: Argument[]; + } + + interface TitledArgument { + title: string; + description: string; + arguments: Argument[]; + } + + interface ReturnValue { + type: string; + description: string; + } +}