From cf3934dd970f0c1d4e3d9fb980889029e1d7879c Mon Sep 17 00:00:00 2001 From: vvakame Date: Fri, 11 Apr 2014 21:16:11 +0900 Subject: [PATCH 1/2] added atom/atom.d.ts and dependencies... --- README.md | 4 + atom/atom-tests.ts | 77 ++++ atom/atom.d.ts | 736 +++++++++++++++++++++++++++++++ emissary/emissary-tests.ts | 22 + emissary/emissary.d.ts | 51 +++ mixto/mixto-tests.ts | 16 + mixto/mixto.d.ts | 16 + pathwatcher/pathwatcher-tests.ts | 10 + pathwatcher/pathwatcher.d.ts | 87 ++++ space-pen/space-pen-tests.ts | 28 ++ space-pen/space-pen.d.ts | 616 ++++++++++++++++++++++++++ 11 files changed, 1663 insertions(+) create mode 100644 atom/atom-tests.ts create mode 100644 atom/atom.d.ts create mode 100644 emissary/emissary-tests.ts create mode 100644 emissary/emissary.d.ts create mode 100644 mixto/mixto-tests.ts create mode 100644 mixto/mixto.d.ts create mode 100644 pathwatcher/pathwatcher-tests.ts create mode 100644 pathwatcher/pathwatcher.d.ts create mode 100644 space-pen/space-pen-tests.ts create mode 100644 space-pen/space-pen.d.ts diff --git a/README.md b/README.md index 3472f264b8..424351acb6 100755 --- a/README.md +++ b/README.md @@ -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)) diff --git a/atom/atom-tests.ts b/atom/atom-tests.ts new file mode 100644 index 0000000000..505973c9af --- /dev/null +++ b/atom/atom-tests.ts @@ -0,0 +1,77 @@ +/// +/// +/// + +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 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; diff --git a/atom/atom.d.ts b/atom/atom.d.ts new file mode 100644 index 0000000000..14a8dbebae --- /dev/null +++ b/atom/atom.d.ts @@ -0,0 +1,736 @@ +// Type definitions for Atom +// Project: https://atom.io/ +// Definitions by: vvakame +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// +/// +/// + +// 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 { + 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; + openLicense():void; + openSync(uri:string, options:any):any; + openUriInPane(uri:string, pane:any, options:any):Q.Promise; + 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 { + 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 +} diff --git a/emissary/emissary-tests.ts b/emissary/emissary-tests.ts new file mode 100644 index 0000000000..3785f52668 --- /dev/null +++ b/emissary/emissary-tests.ts @@ -0,0 +1,22 @@ +/// + +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); diff --git a/emissary/emissary.d.ts b/emissary/emissary.d.ts new file mode 100644 index 0000000000..4c98193e0d --- /dev/null +++ b/emissary/emissary.d.ts @@ -0,0 +1,51 @@ +// Type definitions for emissary +// Project: https://github.com/atom/emissary +// Definitions by: vvakame +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +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 +} diff --git a/mixto/mixto-tests.ts b/mixto/mixto-tests.ts new file mode 100644 index 0000000000..4e6dcad726 --- /dev/null +++ b/mixto/mixto-tests.ts @@ -0,0 +1,16 @@ +/// + +import Mixin = require("mixto"); + +interface ISampleStatic extends Mixto.IMixinStatic { + new ():ISample; +} + +interface ISample { + test():string; +} + +declare var Sample: ISampleStatic; + +Sample.includeInto(Function); +Sample.extend({}); diff --git a/mixto/mixto.d.ts b/mixto/mixto.d.ts new file mode 100644 index 0000000000..1edf8bef1e --- /dev/null +++ b/mixto/mixto.d.ts @@ -0,0 +1,16 @@ +// Type definitions for mixto +// Project: https://github.com/atom/mixto +// Definitions by: 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; +} diff --git a/pathwatcher/pathwatcher-tests.ts b/pathwatcher/pathwatcher-tests.ts new file mode 100644 index 0000000000..4cefea3a76 --- /dev/null +++ b/pathwatcher/pathwatcher-tests.ts @@ -0,0 +1,10 @@ +/// + +import pathwatcher = require("pathwatcher"); +var File = pathwatcher.File; + +var filePath: string; +var file = new File(filePath); + +pathwatcher.watch(filePath, ()=>{ +}); diff --git a/pathwatcher/pathwatcher.d.ts b/pathwatcher/pathwatcher.d.ts new file mode 100644 index 0000000000..1f481979ba --- /dev/null +++ b/pathwatcher/pathwatcher.d.ts @@ -0,0 +1,87 @@ +// Type definitions for pathwatcher +// Project: https://github.com/atom/node-pathwatcher +// Definitions by: vvakame +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// +/// + +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; + 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; +} diff --git a/space-pen/space-pen-tests.ts b/space-pen/space-pen-tests.ts new file mode 100644 index 0000000000..05c2eea03b --- /dev/null +++ b/space-pen/space-pen-tests.ts @@ -0,0 +1,28 @@ +/// + +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(); +(view).find('ol').append('
  • Star Destroyer
  • '); + +(view).on('click', 'li', function () { + alert("They clicked on " + $(this).text()); +}); diff --git a/space-pen/space-pen.d.ts b/space-pen/space-pen.d.ts new file mode 100644 index 0000000000..64d0321557 --- /dev/null +++ b/space-pen/space-pen.d.ts @@ -0,0 +1,616 @@ +/// + +// 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]. +} From 6d626019705a0a46e97a9d24b919d7d949c38b91 Mon Sep 17 00:00:00 2001 From: vvakame Date: Tue, 15 Apr 2014 02:13:04 +0900 Subject: [PATCH 2/2] fix travis-ci --- atom/atom-tests.ts.tscparams | 1 + 1 file changed, 1 insertion(+) create mode 100644 atom/atom-tests.ts.tscparams diff --git a/atom/atom-tests.ts.tscparams b/atom/atom-tests.ts.tscparams new file mode 100644 index 0000000000..5f84b97777 --- /dev/null +++ b/atom/atom-tests.ts.tscparams @@ -0,0 +1 @@ +--noImplicitAny --module commonjs --target es5