Merge pull request #2040 from vvakame/support-atom

added atom/atom.d.ts and dependencies...
This commit is contained in:
Masahiro Wakame
2014-04-15 02:22:36 +09:00
12 changed files with 1664 additions and 0 deletions
+4
View File
@@ -40,6 +40,7 @@ List of Definitions
* [asciify](https://github.com/olizilla/asciify) (by [Alan](http://alan.norbauer.com))
* [assert](https://github.com/Jxck/assert) (by [vvakame](https://github.com/vvakame))
* [async](https://github.com/caolan/async) (by [Boris Yankov](https://github.com/borisyankov))
* [Atom](https://atom.io/) (by [vvakame](https://github.com/vvakame))
* [Backbone.js](http://backbonejs.org/) (by [Boris Yankov](https://github.com/borisyankov))
* [Backbone Relational](http://backbonerelational.org/) (by [Eirik Hoem](https://github.com/eirikhm))
* [BigScreen](http://brad.is/coding/BigScreen/) (by [Douglas Eichelberger](https://github.com/dduugg))
@@ -77,6 +78,7 @@ List of Definitions
* [EaselJS](http://www.createjs.com/#!/EaselJS) (by [Pedro Ferreira](https://bitbucket.org/drk4))
* [EasyStar](http://easystarjs.com/) (by [Magnus Gustafsson](https://github.com/Borundin))
* [ember.js](http://emberjs.com/) (by [Boris Yankov](https://github.com/borisyankov))
* [emissary](https://github.com/atom/emissary) (by [vvakame](https://github.com/vvakame))
* [EpicEditor](http://epiceditor.com/) (by [Boris Yankov](https://github.com/borisyankov))
* [ES6-Promises](https://github.com/jakearchibald/ES6-Promises) (by [François de Campredon](https://github.com/fdecampredon/))
* [expect.js](https://github.com/LearnBoost/expect.js) (by [Teppei Sato](https://github.com/teppeis))
@@ -209,6 +211,7 @@ List of Definitions
* [Meteor](https://www.meteor.com) (by [Dave Allen](https://github.com/fullflavedave))
* [Microsoft Live Connect](http://msdn.microsoft.com/en-us/library/live/hh243643.aspx) (by [John Vilk](https://github.com/jvilk))
* [minimist](https://github.com/substack/minimist) (by [Bart van der Schoor](https://github.com/Bartvds))
* [mixto](https://github.com/atom/mixto) (by [vvakame](https://github.com/vvakame))
* [Modernizr](http://modernizr.com/) (by [Boris Yankov](https://github.com/borisyankov) and [Theodore Brown](https://github.com/theodorejb/))
* [Moment.js](https://github.com/timrwood/moment) (by [Michael Lakerveld](https://github.com/Lakerfield))
* [MongoDB](http://mongodb.github.io/node-mongodb-native/) (from TypeScript samples, updated by [Niklas Mollenhauer](https://github.com/nikeee))
@@ -225,6 +228,7 @@ List of Definitions
* [Numeral.js](https://github.com/adamwdraper/Numeral-js) (by [Vincent Bortone](https://github.com/vbortone/))
* [OpenLayers](https://github.com/openlayers/openlayers) (by [Ilya Bolkhovsky](https://github.com/bolhovsky/))
* [Passport](http://passportjs.org/) (by [Hiroki Horiuchi](https://github.com/horiuchi/))
* [pathwatcher](http://atom.github.io/node-pathwatcher/) (by [vvakame](https://github.com/vvakame))
* [Parallel.js](https://github.com/adambom/parallel.js) (by [Josh Baldwin](https://github.com/jbaldwin))
* [Parsimmon](https://github.com/jayferd/parsimmon) (by [Bart van der Schoor](https://github.com/Bartvds))
* [PDF.js](https://github.com/mozilla/pdf.js) (by [Josh Baldwin](https://github.com/jbaldwin))
+77
View File
@@ -0,0 +1,77 @@
/// <reference path="../node/node.d.ts" />
/// <reference path="./atom.d.ts" />
/// <reference path="../pathwatcher/pathwatcher.d.ts" />
import path = require("path");
import _atom = require("atom");
import pathwatcher = require("pathwatcher");
var File = pathwatcher.File;
class SampleView extends _atom.ScrollView {
editorId:string;
file:pathwatcher.IFile;
editor:AtomCore.IEditor;
static deserialize(state:any):SampleView {
return new SampleView(state);
}
static content():any {
return this.div({class: 'sample native-key-bindings', tabindex: -1});
}
constructor(params:{editorId?:string; filePath?:string;} = {}) {
super();
this.editorId = params.editorId;
if (this.editorId) {
this.resolveEditor(this.editorId);
} else {
this.file = new File(params.filePath);
}
}
get jq():JQuery {
// dirty hack
return <any>this;
}
serialize() {
return {
deserializer: 'SampleView',
editorId: this.editorId
};
}
destroy() {
this.unsubscribe();
}
resolveEditor(editorId:string) {
var resolve = ()=> {
if (this.editor) {
this.jq.trigger("title-changed");
} else {
var view = this.jq.parents('.pane').view();
if (view) {
view.destroyItem(this);
}
}
};
if (atom.workspace) {
resolve();
} else {
atom.packages.once("activated", ()=> {
resolve();
});
}
}
}
atom.deserializers.add(SampleView);
export = SampleView;
+1
View File
@@ -0,0 +1 @@
--noImplicitAny --module commonjs --target es5
+736
View File
@@ -0,0 +1,736 @@
// Type definitions for Atom
// Project: https://atom.io/
// Definitions by: vvakame <https://github.com/vvakame/>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/// <reference path="../q/Q.d.ts" />
/// <reference path="../space-pen/space-pen.d.ts" />
/// <reference path="../emissary/emissary.d.ts" />
// Policy: this definition file only declare element related to `atom`.
// if js file include to another npm package (e.g. "space-pen", "mixto" and "emissary").
// you should create a separate file.
// NOTE Document? You should use DevTools hehe...
interface Window {
atom: AtomCore.IAtom;
measure(description:string, fn:Function):any; // return fn result
profile(description:string, fn:Function):any; // return fn result
}
declare module AtomCore {
// https://atom.io/docs/v0.84.0/advanced/view-system
interface IWorkspaceView {
prependToBottom:any;
prependToTop:any;
prependToLeft:any;
prependToRight:any;
appendToBottom:any;
appendToTop:any;
appendToLeft:any;
appendToRight:any;
command: Function;
}
interface IPanes {
// TBD
}
interface TreeView {
// TBD
}
interface ICommandPanel {
// TBD
}
interface ITextBuffer {
// TBD
}
interface IDisplayBuffer {
buffer: ITextBuffer;
// TBD
}
interface ICursor {
// TBD
}
interface ILanguageMode {
// TBD
}
interface ISelection {
// TBD
}
interface ISubscription {
// TBD
}
interface IEditor {
// Serializable.includeInto(Editor);
// Delegator.includeInto(Editor);
deserializing:boolean;
callDisplayBufferCreatedHook:boolean;
registerEditor:boolean;
buffer:ITextBuffer;
languageMode: ILanguageMode;
cursors:ICursor[];
selections: ISelection[];
suppressSelectionMerging:boolean;
softTabs: boolean;
displayBuffer: IDisplayBuffer;
id:number;
behaviors:any;
declaredPropertyValues: any;
eventHandlersByEventName: any;
eventHandlersByNamespace: any;
lastOpened: number;
subscriptionCounts: any;
subscriptionsByObject: any; /* WeakMap */
subscriptions: ISubscription[];
serializeParams():{id:number; softTabs:boolean; scrollTop:number; scrollLeft:number; displayBuffer:any;};
deserializeParams(params:any):any;
subscribeToBuffer():void;
subscribeToDisplayBuffer():void;
getViewClass():any; // return type are EditorView
destroyed():void;
copy():IEditor;
getTitle():string;
getLongTitle():string;
setVisible(visible:boolean):void;
setScrollTop(scrollTop:any):void;
getScrollTop():any;
setScrollLeft(scrollLeft:any):void;
getScrollLeft():any;
setEditorWidthInChars(editorWidthInChars:any):void;
getSoftWrapColumn():any;
getSoftTabs():boolean;
setSoftTabs(softTabs:boolean):void;
getSoftWrap():any;
setSoftWrap(softWrap:any):void;
getTabText():any;
getTabLength():any;
setTabLength(tabLength:any):void;
clipBufferPosition(bufferPosition:any):void;
clipBufferRange(range:any):void;
indentationForBufferRow(bufferRow:any):void;
setIndentationForBufferRow(bufferRow:any, newLevel:any, _arg:any):void;
indentLevelForLine(line:any):number;
buildIndentString(number:any):any;
save():void;
saveAs(filePath:any):void;
getPath():any;
getText():any;
setText(text:any):void;
getTextInRange(range:any):any;
getLineCount():any;
getBuffer():any;
getUri():any;
isBufferRowBlank(bufferRow:any):void;
isBufferRowCommented(bufferRow:any):void;
nextNonBlankBufferRow(bufferRow:any):void;
getEofBufferPosition():any;
getLastBufferRow():any;
bufferRangeForBufferRow(row:any, options:any):any;
lineForBufferRow(row:any):any;
lineLengthForBufferRow(row:any):any;
scan():any;
scanInBufferRange():any;
backwardsScanInBufferRange():any;
isModified():any;
shouldPromptToSave():any;
screenPositionForBufferPosition(bufferPosition:any, options:any):any;
bufferPositionForScreenPosition(screenPosition:any, options:any):any;
screenRangeForBufferRange(bufferRange:any):any;
bufferRangeForScreenRange(screenRange:any):any;
clipScreenPosition(screenPosition:any, options:any):any;
lineForScreenRow(row:any):any;
linesForScreenRows(start:any, end:any):any;
getScreenLineCount():any;
getMaxScreenLineLength():any;
getLastScreenRow():any;
bufferRowsForScreenRows(startRow:any, endRow:any):any;
bufferRowForScreenRow(row:any):any;
scopesForBufferPosition(bufferPosition:any):any;
bufferRangeForScopeAtCursor(selector:any):any;
tokenForBufferPosition(bufferPosition:any):any;
getCursorScopes():any;
insertText(text:any, options:any):any;
insertNewline():any;
insertNewlineBelow():any;
insertNewlineAbove():any;
indent(options?:any):any;
backspace():any;
backspaceToBeginningOfWord():any;
backspaceToBeginningOfLine():any;
delete():any;
deleteToEndOfWord():any;
deleteLine():any;
indentSelectedRows():any;
outdentSelectedRows():any;
toggleLineCommentsInSelection():any;
autoIndentSelectedRows():any;
normalizeTabsInBufferRange(bufferRange:any):any;
cutToEndOfLine():any;
cutSelectedText():any;
copySelectedText():any;
pasteText(options?:any):any;
undo():any;
redo():any;
foldCurrentRow():any;
unfoldCurrentRow():any;
foldSelectedLines():any;
foldAll():any;
unfoldAll():any;
foldAllAtIndentLevel(level:any):any;
foldBufferRow(bufferRow:any):any;
unfoldBufferRow(bufferRow:any):any;
isFoldableAtBufferRow(bufferRow:any):any;
createFold(startRow:any, endRow:any):any;
destroyFoldWithId(id:any):any;
destroyFoldsIntersectingBufferRange(bufferRange:any):any;
toggleFoldAtBufferRow(bufferRow:any):any;
isFoldedAtCursorRow():any;
isFoldedAtBufferRow(bufferRow:any):any;
isFoldedAtScreenRow(screenRow:any):any;
largestFoldContainingBufferRow(bufferRow:any):any;
largestFoldStartingAtScreenRow(screenRow:any):any;
outermostFoldsInBufferRowRange(startRow:any, endRow:any):any;
moveLineUp():any;
moveLineDown():any;
duplicateLines():any;
duplicateLine():any;
mutateSelectedText(fn:Function):any;
replaceSelectedText(options:any, fn:Function):any;
getMarker(id:any):any;
getMarkers():any;
findMarkers(properties:any):any;
markScreenRange():any;
markBufferRange():any;
markScreenPosition():any;
markBufferPosition():any;
destroyMarker():any;
getMarkerCount():any;
hasMultipleCursors():any;
getCursors():any;
getCursor():any;
addCursorAtScreenPosition(screenPosition:any):any;
addCursorAtBufferPosition(bufferPosition:any):any;
addCursor(marker:any):any;
removeCursor(cursor:any):any;
addSelection(marker:any, options:any):any;
addSelectionForBufferRange(bufferRange:any, options:any):any;
setSelectedBufferRange(bufferRange:any, options:any):any;
setSelectedBufferRanges(bufferRanges:any, options:any):any;
removeSelection(selection:any):any;
clearSelections():any;
consolidateSelections():any;
getSelections():any;
getSelection(index:any):any;
getLastSelection():any;
getSelectionsOrderedByBufferPosition():any;
getLastSelectionInBuffer():any;
selectionIntersectsBufferRange(bufferRange:any):any;
setCursorScreenPosition(position:any, options:any):any;
getCursorScreenPosition():any;
getCursorScreenRow():any;
setCursorBufferPosition(position:any, options:any):any;
getCursorBufferPosition():any;
getSelectedScreenRange():any;
getSelectedBufferRange():any;
getSelectedBufferRanges():any;
getSelectedText():any;
getTextInBufferRange(range:any):any;
setTextInBufferRange(range:any, text:any):any;
getCurrentParagraphBufferRange():any;
getWordUnderCursor(options:any):any;
moveCursorUp(lineCount:any):any;
moveCursorDown(lineCount:any):any;
moveCursorLeft():any;
moveCursorRight():any;
moveCursorToTop():any;
moveCursorToBottom():any;
moveCursorToBeginningOfScreenLine():any;
moveCursorToBeginningOfLine():any;
moveCursorToFirstCharacterOfLine():any;
moveCursorToEndOfScreenLine():any;
moveCursorToEndOfLine():any;
moveCursorToBeginningOfWord():any;
moveCursorToEndOfWord():any;
moveCursorToBeginningOfNextWord():any;
moveCursorToPreviousWordBoundary():any;
moveCursorToNextWordBoundary():any;
moveCursors(fn:Function):any;
selectToScreenPosition(position:any):any;
selectRight():any;
selectLeft():any;
selectUp(rowCount:any):any;
selectDown(rowCount:any):any;
selectToTop():any;
selectAll():any;
selectToBottom():any;
selectToBeginningOfLine():any;
selectToFirstCharacterOfLine():any;
selectToEndOfLine():any;
selectToPreviousWordBoundary():any;
selectToNextWordBoundary():any;
selectLine():any;
addSelectionBelow():any;
addSelectionAbove():any;
splitSelectionsIntoLines():any;
transpose():any;
upperCase():any;
lowerCase():any;
joinLines():any;
selectToBeginningOfWord():any;
selectToEndOfWord():any;
selectToBeginningOfNextWord():any;
selectWord():any;
selectMarker(marker:any):any;
mergeCursors():any;
expandSelectionsForward():any;
expandSelectionsBackward(fn:Function):any;
finalizeSelections():any;
mergeIntersectingSelections():any;
preserveCursorPositionOnBufferReload():any;
getGrammar(): IGrammar;
setGrammar(grammer:IGrammar):void;
reloadGrammar():any;
shouldAutoIndent():any;
transact(fn:Function):any;
beginTransaction():any;
commitTransaction():any;
abortTransaction():any;
inspect():any;
logScreenLines(start:any, end:any):any;
handleGrammarChange():any;
handleMarkerCreated(marker:any):any;
getSelectionMarkerAttributes():any;
joinLine():any;
}
interface IGrammar {
scopeName: string;
// TBD
}
interface IPane /* extends Theorist.Model */ {
items:any[];
activeItem:any;
serializeParams():any;
deserializeParams(params:any):any;
getViewClass():any; // return type are PaneView
isActive():boolean;
focus():void;
blur():void;
activate():void;
getPanes():IPane[];
getItems():any[];
getActiveItem():any;
getActiveEditor():any;
itemAtIndex(index:number):any;
activateNextItem():any;
activatePreviousItem():any;
getActiveItemIndex():number;
activateItemAtIndex(index:number):any;
activateItem(item:any):any;
addItem(item:any, index:number):any;
addItems(items:any[], index:number):any[];
removeItem(item:any, destroying:any):void;
moveItem(item:any, newIndex:number):void;
moveItemToPane(item:any, pane:IPane, index:number):void;
destroyActiveItem():boolean; // always return false
destroyItem(item:any):boolean;
destroyItems():any[];
destroyInactiveItems():any[];
destroy():void;
destroyed():any[];
promptToSaveItem(item:any):boolean;
saveActiveItem():void;
saveActiveItemAs():void;
saveItem(item:any, nextAction:Function):void;
saveItemAs(item:any, nextAction:Function):void;
saveItems():any[];
itemForUri(uri:any):any;
activateItemForUri(uri:any):any;
copyActiveItem():void;
splitLeft(params:any):IPane;
splitRight(params:any):IPane;
splitUp(params:any):IPane;
splitDown(params:any):IPane;
split(orientation:string, side:string, params:any):IPane;
findLeftmostSibling():IPane;
findOrCreateRightmostSibling():IPane;
}
// https://atom.io/docs/v0.84.0/advanced/serialization
interface ISerializationStatic<T> {
deserialize(data:ISerializationInfo):T;
new (data:T): ISerialization;
}
interface ISerialization {
serialize():ISerializationInfo;
}
interface ISerializationInfo {
deserializer: string;
}
interface IBrowserWindow {
getPosition():number[];
getSize():number[];
}
interface IAtomWindowDimentions {
x:number;
y:number;
width:number;
height:number;
}
interface IProject {
// TBD
}
interface IWorkspaceStatic {
new():IWorkspace;
}
interface IWorkspace {
deserializeParams(params:any):any;
serializeParams():{paneContainer:any;fullScreen:boolean;};
eachEditor(callback:Function):void;
getEditors():IEditor[];
open(uri:string, options:any):Q.Promise<View>;
openLicense():void;
openSync(uri:string, options:any):any;
openUriInPane(uri:string, pane:any, options:any):Q.Promise<View>;
reopenItemSync():any;
registerOpener(opener:(urlToOpen:string)=>any):void;
unregisterOpener(opener:Function):void;
getOpeners():any;
getActivePane(): IPane;
getPanes():any;
saveAll():void;
activateNextPane():any;
activatePreviousPane():any;
paneForUri: (uri:string) => IPane;
saveActivePaneItem():any;
saveActivePaneItemAs():any;
destroyActivePaneItem():any;
destroyActivePane():any;
getActiveEditor():IEditor;
increaseFontSize():void;
decreaseFontSize():void;
resetFontSize():void;
itemOpened(item:any):void;
onPaneItemDestroyed(item:any):void;
destroyed():void;
}
interface IAtomSettings {
appVersion: string;
bootstrapScript: string;
devMode: boolean;
initialPath: string;
pathToOpen: string;
resourcePath: string;
shellLoadTime: number;
windowState:string;
}
interface IAtomState {
mode:string;
packageStates:any;
project:any;
syntax:any;
version:number;
windowDimensions:any;
workspace:any;
}
interface IDeserializerManager {
deserializers:Function;
add:Function;
remove:Function;
deserialize:Function;
get:Function;
}
interface IConfig {
get(keyPath:string):any;
// TBD
}
interface IKeymapManager {
defaultTarget:HTMLElement;
// TBD
}
interface IPackageManager extends Emissary.IEmitter {
packageDirPaths:string[];
loadedPackages:any;
activePackages:any;
packageStates:any;
packageActivators:any[];
getApmPath():string;
getPackageDirPaths():string;
getPackageState(name:string):any;
setPackageState(name:string, state:any):void;
enablePackage(name:string):any;
disablePackage(name:string):any;
activate():void;
registerPackageActivator(activator:any, types:any):void;
activatePackages(packages:any):void;
activatePackage(name:string):void;
deactivatePackages():void;
deactivatePackage(name:string):void;
getActivePackages():any;
getActivePackage(name:string):any;
isPackageActive(name:string):boolean;
unobserveDisabledPackages():void;
observeDisabledPackages():void;
loadPackages():void;
loadPackage(nameOrPath:string):void;
unloadPackages():void;
unloadPackage(name:string):void;
getLoadedPackage(name:string):any;
isPackageLoaded(name:string):boolean;
getLoadedPackages():any;
getLoadedPackagesForTypes(types:any):any[];
resolvePackagePath(name:string):string;
isPackageDisabled(name:string):boolean;
hasAtomEngine(packagePath:string):boolean;
isBundledPackage(name:string):boolean;
getPackageDependencies():any;
getAvailablePackagePaths():any[];
getAvailablePackageNames():any[];
getAvailablePackageMetadata():any[];
}
interface IThemeManager {
// TBD
}
interface IContextMenuManager {
// TBD
}
interface IMenuManager {
// TBD
}
interface IClipboard {
// TBD
}
interface ISyntax {
// TBD
}
interface IWindowEventHandler {
// TBD
}
interface IAtomStatic extends ISerializationStatic<IAtom> {
version: number;
loadSettings: IAtomSettings;
loadOrCreate(mode:string):IAtom;
loadState(mode:any):void;
getStatePath(mode:any):string;
getConfigDirPath():string;
getStorageDirPath():string;
getLoadSettings():IAtomSettings;
getCurrentWindow():IBrowserWindow;
getVersion():string;
isReleasedVersion():boolean;
new(state:IAtomState):IAtom;
}
interface IAtom {
constructor:IAtomStatic;
state:IAtomState;
mode:string;
deserializers:IDeserializerManager;
config: IConfig;
keymaps: IKeymapManager;
keymap: IKeymapManager;
packages: IPackageManager;
themes: IThemeManager;
contextManu: IContextMenuManager;
menu: IMenuManager;
clipboard:IClipboard;
syntax:ISyntax;
windowEventHandler: IWindowEventHandler;
// really exists? start
subscribe:Function;
unsubscribe:Function;
loadTime:number;
workspaceViewParentSelector:string;
project: IProject;
workspaceView: IWorkspaceView;
workspace: IWorkspace;
// really exists? end
initialize:Function;
// registerRepresentationClass:Function;
// registerRepresentationClasses:Function;
setBodyPlatformClass:Function;
getCurrentWindow():IBrowserWindow;
getWindowDimensions:Function;
setWindowDimensions:Function;
restoreWindowDimensions:Function;
storeWindowDimensions:Function;
getLoadSettings:Function;
deserializeProject: Function;
deserializeWorkspaceView:Function;
deserializePackageStates:Function;
deserializeEditorWindow:Function;
startEditorWindow:Function;
unloadEditorWindow:Function;
loadThemes:Function;
watchThemes:Function;
open:Function;
confirm:Function;
showSaveDialog:Function;
showSaveDialogSync:Function;
openDevTools:Function;
toggleDevTools:Function;
executeJavaScriptInDevTools:Function;
reload:Function;
focus:Function;
show:Function;
hide:Function;
setSize:Function;
setPosition:Function;
center:Function;
displayWindow:Function;
close:Function;
exit:Function;
inDevMode:Function;
inSpecMode:Function;
toggleFullScreen:Function;
setFullScreen:Function;
isFullScreen:Function;
getVersion:Function;
isReleasedVersion:Function;
getGitHubAuthTokenName:Function;
setGitHubAuthToken:Function;
getGitHubAuthToken:Function;
getConfigDirPath:Function;
saveSync:Function;
getWindowLoadTime():number;
crashMainProcess:Function;
crashRenderProcess:Function;
beep:Function;
getUserInitScriptPath:Function;
requireUserInitScript:Function;
requireWithGlobals:Function;
}
interface IBufferedNodeProcessStatic {
new (arg:any):IBufferedNodeProcess;
}
interface IBufferedNodeProcess extends IBufferedProcess {
}
interface IBufferedProcessStatic {
new (arg:any):IBufferedProcess;
}
interface IBufferedProcess {
process:Function;
killed:boolean;
bufferStream:Function;
kill:Function;
}
interface IGitStatic {
new(path:any, options:any):IGit;
}
interface IGit {
}
interface IPointStatic {
new(row:any, column:any):IPoint;
}
interface IPoint {
// TBD
}
interface IRangeStatic {
new(pointA:IPoint, pointB:IPoint):IRange;
}
interface IRange {
// TBD
}
interface ITaskStatic {
new(taskPath:any):ITask;
}
interface ITask {
// TBD
}
}
declare var atom:AtomCore.IAtom;
declare module "atom" {
import spacePen = require("space-pen");
var $:typeof spacePen.$;
var $$$:typeof spacePen.$$$;
var BufferedNodeProcess:AtomCore.IBufferedNodeProcessStatic;
var BufferedProcess:AtomCore.IBufferedProcessStatic;
var EditorView:any;
var Git:AtomCore.IGitStatic;
var Point:AtomCore.IPointStatic;
var Range:AtomCore.IRangeStatic;
class View extends spacePen.View implements Emissary.ISubscriber {
// Subscriber.includeInto(spacePen.View);
// inherit from Subscriber
subscribeWith(eventEmitter:any, methodName:string, args:any):any;
addSubscription(subscription:any):any;
subscribe(eventEmitterOrSubscription:any, ...args:any[]):any;
subscribeToCommand(eventEmitter:any, ...args:any[]):any;
unsubscribe(object?:any):any;
}
class ScrollView extends View {
// TBD
}
var SelectListView:any;
var Task:AtomCore.ITaskStatic;
var Workspace:AtomCore.IWorkspaceStatic;
var WorkspaceView:any; // WorkspaceView extends View
}
+22
View File
@@ -0,0 +1,22 @@
/// <reference path="./emissary.d.ts" />
import emissary = require("emissary");
var Emitter = emissary.Emitter;
var emitter = new Emitter();
emitter.on('foo', ()=>{});
emitter.emit('a');
emitter.getSubscriptionCount('b');
emitter.on('b-subscription-added', (handler:any) =>{});
emitter.emit('b', 'b2');
emitter.off('foo', ()=>{});
emitter.signal('a');
var Subscriber = emissary.Subscriber;
var subscriber = new Subscriber();
subscriber.subscribe(emitter, 'event1', ()=>{});
subscriber.unsubscribe();
subscriber.unsubscribe(emitter);
+51
View File
@@ -0,0 +1,51 @@
// Type definitions for emissary
// Project: https://github.com/atom/emissary
// Definitions by: vvakame <https://github.com/vvakame/>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/// <reference path="../mixto/mixto.d.ts" />
declare module Emissary {
interface IEmitterStatic extends Mixto.IMixinStatic {
new ():IEmitter;
}
interface IEmitter {
on(eventNames:string, handler:Function):any; // return value type are Signal
once(eventName:string, handler:Function):any; // return value type are Signal
signal(eventName:string):void;
behavior(eventName:string, initialValue:any):void;
emit(eventName:string, ...args:any[]):void;
off(eventNames:string, handler:Function):void;
pauseEvents(eventNames:string):void;
resumeEvents(eventNames:string):void;
incrementSubscriptionCount(eventName:string):number;
decrementSubscriptionCount(eventName:string):number;
getSubscriptionCount(eventName:string):number;
hasSubscriptions(eventName:string):boolean;
}
interface ISubscriberStatic extends Mixto.IMixinStatic {
new ():ISubscriber;
}
interface ISubscriber {
subscribeWith(eventEmitter:any, methodName:string, args:any):any;
addSubscription(subscription:any):any;
subscribe(eventEmitterOrSubscription:any, ...args:any[]):any;
subscribeToCommand(eventEmitter:any, ...args:any[]):any;
unsubscribe(object?:any):any;
}
}
declare module "emissary" {
var Emitter:Emissary.IEmitterStatic;
var Subscriber:Emissary.ISubscriberStatic;
var Signal:Function; // TODO
var Behavior:Function; // TODO
var combine:Function; // TODO
}
+16
View File
@@ -0,0 +1,16 @@
/// <reference path="./mixto.d.ts" />
import Mixin = require("mixto");
interface ISampleStatic extends Mixto.IMixinStatic {
new ():ISample;
}
interface ISample {
test():string;
}
declare var Sample: ISampleStatic;
Sample.includeInto(Function);
Sample.extend({});
+16
View File
@@ -0,0 +1,16 @@
// Type definitions for mixto
// Project: https://github.com/atom/mixto
// Definitions by: vvakame <https://github.com/vvakame/>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
declare module Mixto {
interface IMixinStatic {
includeInto(constructor:any):void;
extend(object:any):void;
}
}
declare module "mixto" {
var _tmp:Mixto.IMixinStatic;
export = _tmp;
}
+10
View File
@@ -0,0 +1,10 @@
/// <reference path="./pathwatcher.d.ts" />
import pathwatcher = require("pathwatcher");
var File = pathwatcher.File;
var filePath: string;
var file = new File(filePath);
pathwatcher.watch(filePath, ()=>{
});
+87
View File
@@ -0,0 +1,87 @@
// Type definitions for pathwatcher
// Project: https://github.com/atom/node-pathwatcher
// Definitions by: vvakame <https://github.com/vvakame/>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/// <reference path="../node/node.d.ts" />
/// <reference path="../q/Q.d.ts" />
declare module "pathwatcher" {
import events = require("events");
interface IHandleWatcher extends events.EventEmitter {
onEvent(event:any, filePath:any, oldFilePath:any):any;
start():void;
closeIfNoListener():void;
close():void;
}
interface IPathWatcher {
isWatchingParent:boolean;
path:any;
handleWatcher:IHandleWatcher;
close():void;
}
interface IFileStatic {
new (path:string, symlink?:boolean):IFile;
}
interface IFile {
realPath:string;
path:string;
symlink:boolean;
cachedContents:string;
digest:string;
handleEventSubscriptions():void;
setPath(path:string):void;
getPath():string;
getRealPathSync():string;
getBaseName():string;
write(text:string):void;
readSync(flushCache:boolean):string;
read(flushCache?:boolean):Q.Promise<string>;
exists():boolean;
setDigest(contents:string):void;
getDigest():string;
writeFileWithPrivilegeEscalationSync (filePath:string, text:string):void;
handleNativeChangeEvent(eventType:string, eventPath:string):void;
detectResurrectionAfterDelay():void;
detectResurrection():void;
subscribeToNativeChangeEvents():void;
unsubscribeFromNativeChangeEvents():void;
}
interface IDirectoryStatic {
new (path:string, symlink?:boolean):IDirectory;
}
interface IDirectory {
realPath:string;
path:string;
symlink:boolean;
getBaseName():string;
getPath():void;
getRealPathSync():string;
contains(pathToCheck:string):boolean;
relativize(fullPath:string):string;
getEntriesSync():any[]; // return type are {File | Directory}[]
getEntries(callback:Function):void;
subscribeToNativeChangeEvents():void;
unsubscribeFromNativeChangeEvents():void;
isPathPrefixOf(prefix:string, fullPath:string):boolean;
}
function watch(path:string, callback:Function):IPathWatcher;
function closeAllWatchers():void;
function getWatchedPaths():string[];
var File:IFileStatic;
var Directory:IDirectoryStatic;
}
+28
View File
@@ -0,0 +1,28 @@
/// <reference path="./space-pen.d.ts" />
import SpacePen = require("space-pen");
import View = SpacePen.View;
class Spacecraft extends View {
static content() {
this.div(()=> {
this.h1("Spacecraft");
this.ol(()=> {
this.li("Apollo");
this.li("Soyuz");
this.li("Space Shuttle");
});
});
}
constructor() {
super();
}
}
var view = new Spacecraft();
(<JQuery><any>view).find('ol').append('<li>Star Destroyer</li>');
(<JQuery><any>view).on('click', 'li', function () {
alert("They clicked on " + $(this).text());
});
+616
View File
@@ -0,0 +1,616 @@
/// <reference path="../jquery/jquery.d.ts" />
// http://atom.github.io/space-pen/
interface JQuery {
view():any;
views():any[];
}
interface JQuery {
scrollBottom():number;
scrollBottom(newValue:number):JQuery;
scrollDown():JQuery;
scrollUp():JQuery;
scrollToTop():JQuery;
scrollToBottom():JQuery;
scrollRight():number;
scrollRight(newValue:number):JQuery;
pageUp():JQuery;
pageDown():JQuery;
isOnDom():boolean;
isVisible():boolean;
isHidden():boolean;
isDisabled():boolean;
enable():JQuery;
disable():JQuery;
insertAt(index:number, element:any):JQuery;
removeAt(index:number):JQuery;
indexOf(child:any):any;
containsElement(element:any):boolean;
preempt(eventName:any, handler:Function):any;
handlers(eventName:any):any;
hasParent():boolean;
hasFocus():boolean;
flashError():number;
trueHeight():any;
trueWidth():any;
document(eventName:any, docString:string):any;
events():any;
command(eventName:any, handler:any):any;
command(eventName:any, selector:any, handler:any):any;
command(eventName:any, selector:any, options:any, handler:any):any;
iconSize(size:number):void;
intValue():number;
}
declare class View /* implements JQuery */ {
static builderStack:Builder[];
static subview(name:any, view:any):void;
static text(str:string):void;
static tag(tagName:any, ...args:any[]):void;
static raw(str:string):void;
static pushBuilder():void;
static popBuilder():Builder;
static buildHtml(fn:()=>void):any[];
static render(fn:()=>void):JQuery;
// please override this method!
static content(...args:any[]):void;
// tag start
static a(...args:any[]):void;
static abbr(...args:any[]):void;
static address(...args:any[]):void;
static article(...args:any[]):void;
static aside(...args:any[]):void;
static audio(...args:any[]):void;
static b(...args:any[]):void;
static bdi(...args:any[]):void;
static bdo(...args:any[]):void;
static blockquote(...args:any[]):void;
static body(...args:any[]):void;
static button(...args:any[]):void;
static canvas(...args:any[]):void;
static caption(...args:any[]):void;
static cite(...args:any[]):void;
static code(...args:any[]):void;
static colgroup(...args:any[]):void;
static datalist(...args:any[]):void;
static dd(...args:any[]):void;
static del(...args:any[]):void;
static details(...args:any[]):void;
static dfn(...args:any[]):void;
static div(...args:any[]):void;
static dl(...args:any[]):void;
static dt(...args:any[]):void;
static em(...args:any[]):void;
static fieldset(...args:any[]):void;
static figcaption(...args:any[]):void;
static figure(...args:any[]):void;
static footer(...args:any[]):void;
static form(...args:any[]):void;
static h1(...args:any[]):void;
static h2(...args:any[]):void;
static h3(...args:any[]):void;
static h4(...args:any[]):void;
static h5(...args:any[]):void;
static h6(...args:any[]):void;
static head(...args:any[]):void;
static header(...args:any[]):void;
static hgroup(...args:any[]):void;
static html(...args:any[]):void;
static i(...args:any[]):void;
static iframe(...args:any[]):void;
static ins(...args:any[]):void;
static kbd(...args:any[]):void;
static label(...args:any[]):void;
static legend(...args:any[]):void;
static li(...args:any[]):void;
static map(...args:any[]):void;
static mark(...args:any[]):void;
static menu(...args:any[]):void;
static meter(...args:any[]):void;
static nav(...args:any[]):void;
static noscript(...args:any[]):void;
static object(...args:any[]):void;
static ol(...args:any[]):void;
static optgroup(...args:any[]):void;
static option(...args:any[]):void;
static output(...args:any[]):void;
static p(...args:any[]):void;
static pre(...args:any[]):void;
static progress(...args:any[]):void;
static q(...args:any[]):void;
static rp(...args:any[]):void;
static rt(...args:any[]):void;
static ruby(...args:any[]):void;
static s(...args:any[]):void;
static samp(...args:any[]):void;
static script(...args:any[]):void;
static section(...args:any[]):void;
static select(...args:any[]):void;
static small(...args:any[]):void;
static span(...args:any[]):void;
static strong(...args:any[]):void;
static style(...args:any[]):void;
static sub(...args:any[]):void;
static summary(...args:any[]):void;
static sup(...args:any[]):void;
static table(...args:any[]):void;
static tbody(...args:any[]):void;
static td(...args:any[]):void;
static textarea(...args:any[]):void;
static tfoot(...args:any[]):void;
static th(...args:any[]):void;
static thead(...args:any[]):void;
static time(...args:any[]):void;
static title(...args:any[]):void;
static tr(...args:any[]):void;
static u(...args:any[]):void;
static ul(...args:any[]):void;
static video(...args:any[]):void;
static area(...args:any[]):void;
static base(...args:any[]):void;
static br(...args:any[]):void;
static col(...args:any[]):void;
static command(...args:any[]):void;
static embed(...args:any[]):void;
static hr(...args:any[]):void;
static img(...args:any[]):void;
static input(...args:any[]):void;
static keygen(...args:any[]):void;
static link(...args:any[]):void;
static meta(...args:any[]):void;
static param(...args:any[]):void;
static source(...args:any[]):void;
static track(...args:any[]):void;
static wbrk(...args:any[]):void;
// tag end
initialize(view:View, args:any):void;
constructor(...args:any[]);
buildHtml(params:any):any;
wireOutlets(view:View):void;
bindEventHandlers(view:View):void;
pushStack(elems:any):any;
end():any;
command(commandName:any, selector:any, options:any, handler:any):any;
preempt(eventName:any, handler:any):any;
}
declare class Builder {
document:any[];
postProcessingSteps:any[];
buildHtml():any[];
tag(name:string, ...args:any[]):void;
openTag(name:string, attributes:any):void;
closeTag(name:string):void;
text(str:string):void;
raw(str:string):void;
subview(outletName:any, subview:View):void;
extractOptions(args:any):any;
}
declare module "space-pen" {
// copy & paste start
class View /* implements JQueryStatic */ {
static builderStack:Builder[];
static subview(name:any, view:any):void;
static text(str:string):void;
static tag(tagName:any, ...args:any[]):void;
static raw(str:string):void;
static pushBuilder():void;
static popBuilder():Builder;
static buildHtml(fn:()=>void):any[];
static render(fn:()=>void):JQuery;
// please override this method!
static content(...args:any[]):void;
// tag start
static a(...args:any[]):any;
static abbr(...args:any[]):any;
static address(...args:any[]):any;
static article(...args:any[]):any;
static aside(...args:any[]):any;
static audio(...args:any[]):any;
static b(...args:any[]):any;
static bdi(...args:any[]):any;
static bdo(...args:any[]):any;
static blockquote(...args:any[]):any;
static body(...args:any[]):any;
static button(...args:any[]):any;
static canvas(...args:any[]):any;
static caption(...args:any[]):any;
static cite(...args:any[]):any;
static code(...args:any[]):any;
static colgroup(...args:any[]):any;
static datalist(...args:any[]):any;
static dd(...args:any[]):any;
static del(...args:any[]):any;
static details(...args:any[]):any;
static dfn(...args:any[]):any;
static div(...args:any[]):any;
static dl(...args:any[]):any;
static dt(...args:any[]):any;
static em(...args:any[]):any;
static fieldset(...args:any[]):any;
static figcaption(...args:any[]):any;
static figure(...args:any[]):any;
static footer(...args:any[]):any;
static form(...args:any[]):any;
static h1(...args:any[]):any;
static h2(...args:any[]):any;
static h3(...args:any[]):any;
static h4(...args:any[]):any;
static h5(...args:any[]):any;
static h6(...args:any[]):any;
static head(...args:any[]):any;
static header(...args:any[]):any;
static hgroup(...args:any[]):any;
static html(...args:any[]):any;
static i(...args:any[]):any;
static iframe(...args:any[]):any;
static ins(...args:any[]):any;
static kbd(...args:any[]):any;
static label(...args:any[]):any;
static legend(...args:any[]):any;
static li(...args:any[]):any;
static map(...args:any[]):any;
static mark(...args:any[]):any;
static menu(...args:any[]):any;
static meter(...args:any[]):any;
static nav(...args:any[]):any;
static noscript(...args:any[]):any;
static object(...args:any[]):any;
static ol(...args:any[]):any;
static optgroup(...args:any[]):any;
static option(...args:any[]):any;
static output(...args:any[]):any;
static p(...args:any[]):any;
static pre(...args:any[]):any;
static progress(...args:any[]):any;
static q(...args:any[]):any;
static rp(...args:any[]):any;
static rt(...args:any[]):any;
static ruby(...args:any[]):any;
static s(...args:any[]):any;
static samp(...args:any[]):any;
static script(...args:any[]):any;
static section(...args:any[]):any;
static select(...args:any[]):any;
static small(...args:any[]):any;
static span(...args:any[]):any;
static strong(...args:any[]):any;
static style(...args:any[]):any;
static sub(...args:any[]):any;
static summary(...args:any[]):any;
static sup(...args:any[]):any;
static table(...args:any[]):any;
static tbody(...args:any[]):any;
static td(...args:any[]):any;
static textarea(...args:any[]):any;
static tfoot(...args:any[]):any;
static th(...args:any[]):any;
static thead(...args:any[]):any;
static time(...args:any[]):any;
static title(...args:any[]):any;
static tr(...args:any[]):any;
static u(...args:any[]):any;
static ul(...args:any[]):any;
static video(...args:any[]):any;
static area(...args:any[]):any;
static base(...args:any[]):any;
static br(...args:any[]):any;
static col(...args:any[]):any;
static command(...args:any[]):any;
static embed(...args:any[]):any;
static hr(...args:any[]):any;
static img(...args:any[]):any;
static input(...args:any[]):any;
static keygen(...args:any[]):any;
static link(...args:any[]):any;
static meta(...args:any[]):any;
static param(...args:any[]):any;
static source(...args:any[]):any;
static track(...args:any[]):any;
static wbrk(...args:any[]):any;
// tag end
initialize(view:View, args:any):void;
constructor(...args:any[]);
buildHtml(params:any):any;
wireOutlets(view:View):void;
bindEventHandlers(view:View):void;
pushStack(elems:any):any;
end():any;
command(commandName:any, selector:any, options:any, handler:any):any;
preempt(eventName:any, handler:any):any;
}
class Builder {
document:any[];
postProcessingSteps:any[];
buildHtml():any[];
tag(name:string, ...args:any[]):void;
openTag(name:string, attributes:any):void;
closeTag(name:string):void;
text(str:string):void;
raw(str:string):void;
subview(outletName:any, subview:View):void;
extractOptions(args:any):any;
}
// copy & paste end
var jQuery:JQueryStatic;
var $:JQueryStatic;
var $$:(fn:Function)=>JQuery; // same type as View.render's return type.
var $$$:(fn:Function)=>any; // same type as View.buildHtml's return type's [0].
}