// Type definitions for Atom
// Project: https://atom.io/
// Definitions by: vvakame
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
///
///
///
///
///
///
// 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.
// API documentation : https://atom.io/docs/api/v0.106.0/api/docs/README.md.html
interface Window {
atom: AtomCore.IAtom;
measure(description:string, fn:Function):any; // return fn result
profile(description:string, fn:Function):any; // return fn result
}
declare namespace AtomCore {
// https://atom.io/docs/v0.84.0/advanced/view-system
interface IWorkspaceViewStatic {
new ():IWorkspaceView;
version: number;
configDefaults:any;
content():any;
}
interface Decoration {
destroy(): void;
}
/**
* Represents a buffer annotation that remains logically stationary even as the buffer changes. This is used
* to represent cursors, folds, snippet targets, misspelled words, any anything else that needs to track a
* logical location in the buffer over time.
*/
interface Marker {
/**
* Destroys the marker, causing it to emit the 'destroyed' event. Once destroyed, a marker cannot be
* restored by undo/redo operations.
*/
destroy(): void;
/**
* Gets the screen range of the display marker.
*/
getScreenRange(): Range;
}
interface IWorkspaceView extends View {
// Delegator.includeInto(WorkspaceView);
// delegate to model property's property
fullScreen:boolean;
// delegate to model property's method
open(uri:string, options:any):Q.Promise;
openSync(uri:string, options?:any):any;
saveActivePaneItem():any;
saveActivePaneItemAs():any;
saveAll():void;
destroyActivePaneItem():any;
destroyActivePane():any;
increaseFontSize():void;
decreaseFontSize():void;
// own property & methods
initialize(model:IWorkspace):any;
initialize(view:View, args:any):void; // do not use
model:IWorkspace;
panes: IPaneContainerView;
getModel():IWorkspace;
installShellCommands():any;
handleFocus():any;
afterAttach(onDom?:any):any;
confirmClose():boolean;
updateTitle():any;
setTitle(title:string):any;
getEditorViews():any[]; // atom.EditorView
prependToTop(element:any):any;
appendToTop(element:any):any;
prependToBottom(element:any):any;
appendToBottom(element:any):any;
prependToLeft(element:any):any;
appendToLeft(element:any):any;
prependToRight(element:any):any;
appendToRight(element:any):any;
getActivePaneView():IPaneView;
getActiveView():View;
focusPreviousPaneView():any;
focusNextPaneView():any;
focusPaneViewAbove():any;
focusPaneViewBelow():any;
focusPaneViewOnLeft():any;
focusPaneViewOnRight():any;
eachPaneView(callback:(paneView:IPaneView)=>any):{ off():any; };
getPaneViews():IPaneView[];
eachEditorView(callback:(editorView:any /* EditorView */)=>any):{ off():any; };
beforeRemove():any;
command(eventName:string, handler:Function):any;
command(eventName:string, selector:Function, handler:Function):any;
command(eventName:string, options:any, handler:Function):any;
command(eventName:string, selector:Function, options:any, handler:Function):any;
statusBar:StatusBar.IStatusBarView;
}
interface IPanes {
// TBD
}
interface IPaneView {
// TBD
}
interface IPaneContainerView {
// TBD
}
interface ITreeView {
// TBD
}
interface IGutterViewStatic {
new(): IGutterView;
content():any;
}
interface IGutterView extends View {
firstScreenRow:any;
lastScreenRow:any;
initialize():void;
initialize(view:View, args:any):void; // do not use
afterAttach(onDom?:any):any;
beforeRemove():any;
handleMouseEvents(e:JQueryMouseEventObject):any;
getEditorView():any; /* EditorView */
getEditor():IEditor;
getLineNumberElements():HTMLCollection;
getLineNumberElementsForClass(klass:string):NodeList;
getLineNumberElement(bufferRow:number):NodeList;
addClassToAllLines(klass:string):boolean;
removeClassFromAllLines(klass:string):boolean;
addClassToLine(bufferRow:number, klass:string):boolean;
removeClassFromLine(bufferRow:number, klass:string):boolean;
updateLineNumbers(changes:any[], startScreenRow?:number, endScreenRow?:number):any;
prependLineElements(lineElements:any):void;
appendLineElements(lineElements:any):void;
removeLineElements(numberOfElements:number):void;
buildLineElements(startScreenRow:any, endScreenRow:any):any;
buildLineElementsHtml(startScreenRow:any, endScreenRow:any):any;
updateFoldableClasses(changes:any[]):any;
removeLineHighlights():void;
addLineHighlight(row:number, emptySelection?:boolean):any;
highlightLines():boolean;
}
interface ICommandRegistry {
add(target: string, commandName: Object, callback?: (event: any) => void): any; // selector:'atom-editor'|'atom-workspace'
findCommands(params: Object): Object[];
dispatch(selector: any, name:string): void;
}
interface ICommandPanel {
// TBD
}
interface IDisplayBufferStatic {
new(_arg?:any):IDisplayBuffer;
}
interface IDisplayBuffer /* extends Theorist.Model */ {
// Serializable.includeInto(Editor);
constructor:IDisplayBufferStatic;
verticalScrollMargin:number;
horizontalScrollMargin:number;
declaredPropertyValues:any;
tokenizedBuffer: ITokenizedBuffer;
buffer: TextBuffer.ITextBuffer;
charWidthsByScope:any;
markers:{ [index:number]:IDisplayBufferMarker; };
foldsByMarkerId:any;
maxLineLength:number;
screenLines:ITokenizedLine[];
rowMap:any; // return type are RowMap
longestScreenRow:number;
subscriptions:Emissary.ISubscription[];
subscriptionsByObject:any; // return type are WeakMap
behaviors:any;
subscriptionCounts:any;
eventHandlersByEventName:any;
pendingChangeEvent:any;
softWrap:boolean;
serializeParams():{id:number; softWrap:boolean; editorWidthInChars: number; scrollTop: number; scrollLeft: number; tokenizedBuffer: any; };
deserializeParams(params:any):any;
copy():IDisplayBuffer;
updateAllScreenLines():any;
emitChanged(eventProperties:any, refreshMarkers?:boolean):any;
updateWrappedScreenLines():any;
setVisible(visible:any):any;
getVerticalScrollMargin():number;
setVerticalScrollMargin(verticalScrollMargin:number):number;
getHorizontalScrollMargin():number;
setHorizontalScrollMargin(horizontalScrollMargin:number):number;
getHeight():any;
setHeight(height:any):any;
getWidth():any;
setWidth(newWidth:any):any;
getScrollTop():number;
setScrollTop(scrollTop:number):number;
getScrollBottom():number;
setScrollBottom(scrollBottom:number):number;
getScrollLeft():number;
setScrollLeft(scrollLeft:number):number;
getScrollRight():number;
setScrollRight(scrollRight:number):number;
getLineHeight():any;
setLineHeight(lineHeight:any):any;
getDefaultCharWidth():any;
setDefaultCharWidth(defaultCharWidth:any):any;
getScopedCharWidth(scopeNames:any, char:any):any;
getScopedCharWidths(scopeNames:any):any;
setScopedCharWidth(scopeNames:any, char:any, width:any):any;
setScopedCharWidths(scopeNames:any, charWidths:any):any;
clearScopedCharWidths():any;
getScrollHeight():number;
getScrollWidth():number;
getVisibleRowRange():number[];
intersectsVisibleRowRange(startRow:any, endRow:any):any;
selectionIntersectsVisibleRowRange(selection:any):any;
scrollToScreenRange(screenRange:any):any;
scrollToScreenPosition(screenPosition:any):any;
scrollToBufferPosition(bufferPosition:any):any;
pixelRectForScreenRange(screenRange:TextBuffer.IRange):any;
getTabLength():number;
setTabLength(tabLength:number):any;
setSoftWrap(softWrap:boolean):boolean;
getSoftWrap():boolean;
setEditorWidthInChars(editorWidthInChars:number):any;
getEditorWidthInChars():number;
getSoftWrapColumn():number;
lineForRow(row:number):any;
linesForRows(startRow:number, endRow:number):any;
getLines():any[];
indentLevelForLine(line:any):any;
bufferRowsForScreenRows(startScreenRow:any, endScreenRow:any):any;
createFold(startRow:number, endRow:number):IFold;
isFoldedAtBufferRow(bufferRow:number):boolean;
isFoldedAtScreenRow(screenRow:number):boolean;
destroyFoldWithId(id:number):any;
unfoldBufferRow(bufferRow:number):any[];
largestFoldStartingAtBufferRow(bufferRow:number):any;
foldsStartingAtBufferRow(bufferRow:number):any;
largestFoldStartingAtScreenRow(screenRow:any):any;
largestFoldContainingBufferRow(bufferRow:any):any;
outermostFoldsInBufferRowRange(startRow:any, endRow:any):any[];
foldsContainingBufferRow(bufferRow:any):any[];
screenRowForBufferRow(bufferRow:number):number;
lastScreenRowForBufferRow(bufferRow:number):number;
bufferRowForScreenRow(screenRow:number):number;
screenRangeForBufferRange(bufferRange:TextBuffer.IPoint[]):TextBuffer.IRange;
screenRangeForBufferRange(bufferRange:TextBuffer.IRange):TextBuffer.IRange;
screenRangeForBufferRange(bufferRange:{start: TextBuffer.IPoint; end: TextBuffer.IPoint}):TextBuffer.IRange;
screenRangeForBufferRange(bufferRange:{start: number[]; end: TextBuffer.IPoint}):TextBuffer.IRange;
screenRangeForBufferRange(bufferRange:{start: {row:number; col:number;}; end: TextBuffer.IPoint}):TextBuffer.IRange;
screenRangeForBufferRange(bufferRange:{start: TextBuffer.IPoint; end: number[]}):TextBuffer.IRange;
screenRangeForBufferRange(bufferRange:{start: number[]; end: number[]}):TextBuffer.IRange;
screenRangeForBufferRange(bufferRange:{start: {row:number; col:number;}; end: number[]}):TextBuffer.IRange;
screenRangeForBufferRange(bufferRange:{start: TextBuffer.IPoint; end: {row:number; col:number;}}):TextBuffer.IRange;
screenRangeForBufferRange(bufferRange:{start: number[]; end: {row:number; col:number;}}):TextBuffer.IRange;
screenRangeForBufferRange(bufferRange:{start: {row:number; col:number;}; end: {row:number; col:number;}}):TextBuffer.IRange;
bufferRangeForScreenRange(screenRange:TextBuffer.IPoint[]):TextBuffer.IRange;
bufferRangeForScreenRange(screenRange:TextBuffer.IRange):TextBuffer.IRange;
bufferRangeForScreenRange(screenRange:{start: TextBuffer.IPoint; end: TextBuffer.IPoint}):TextBuffer.IRange;
bufferRangeForScreenRange(screenRange:{start: number[]; end: TextBuffer.IPoint}):TextBuffer.IRange;
bufferRangeForScreenRange(screenRange:{start: {row:number; col:number;}; end: TextBuffer.IPoint}):TextBuffer.IRange;
bufferRangeForScreenRange(screenRange:{start: TextBuffer.IPoint; end: number[]}):TextBuffer.IRange;
bufferRangeForScreenRange(screenRange:{start: number[]; end: number[]}):TextBuffer.IRange;
bufferRangeForScreenRange(screenRange:{start: {row:number; col:number;}; end: number[]}):TextBuffer.IRange;
bufferRangeForScreenRange(screenRange:{start: TextBuffer.IPoint; end: {row:number; col:number;}}):TextBuffer.IRange;
bufferRangeForScreenRange(screenRange:{start: number[]; end: {row:number; col:number;}}):TextBuffer.IRange;
bufferRangeForScreenRange(screenRange:{start: {row:number; col:number;}; end: {row:number; col:number;}}):TextBuffer.IRange;
pixelRangeForScreenRange(screenRange:TextBuffer.IPoint[], clip?:boolean):TextBuffer.IRange;
pixelRangeForScreenRange(screenRange:TextBuffer.IRange, clip?:boolean):TextBuffer.IRange;
pixelRangeForScreenRange(screenRange:{start: TextBuffer.IPoint; end: TextBuffer.IPoint}, clip?:boolean):TextBuffer.IRange;
pixelRangeForScreenRange(screenRange:{start: number[]; end: TextBuffer.IPoint}, clip?:boolean):TextBuffer.IRange;
pixelRangeForScreenRange(screenRange:{start: {row:number; col:number;}; end: TextBuffer.IPoint}, clip?:boolean):TextBuffer.IRange;
pixelRangeForScreenRange(screenRange:{start: TextBuffer.IPoint; end: number[]}, clip?:boolean):TextBuffer.IRange;
pixelRangeForScreenRange(screenRange:{start: number[]; end: number[]}, clip?:boolean):TextBuffer.IRange;
pixelRangeForScreenRange(screenRange:{start: {row:number; col:number;}; end: number[]}, clip?:boolean):TextBuffer.IRange;
pixelRangeForScreenRange(screenRange:{start: TextBuffer.IPoint; end: {row:number; col:number;}}, clip?:boolean):TextBuffer.IRange;
pixelRangeForScreenRange(screenRange:{start: number[]; end: {row:number; col:number;}}, clip?:boolean):TextBuffer.IRange;
pixelRangeForScreenRange(screenRange:{start: {row:number; col:number;}; end: {row:number; col:number;}}, clip?:boolean):TextBuffer.IRange;
pixelPositionForScreenPosition(screenPosition:TextBuffer.IPoint, clip?:boolean):TextBuffer.IPoint;
pixelPositionForScreenPosition(screenPosition:number[], clip?:boolean):TextBuffer.IPoint;
pixelPositionForScreenPosition(screenPosition:{row:number; col:number;}, clip?:boolean):TextBuffer.IPoint;
screenPositionForPixelPosition(pixelPosition:any):TextBuffer.IPoint;
pixelPositionForBufferPosition(bufferPosition:any):any;
getLineCount():number;
getLastRow():number;
getMaxLineLength():number;
screenPositionForBufferPosition(bufferPosition:any, options:any):any;
bufferPositionForScreenPosition(bufferPosition:any, options:any):any;
scopesForBufferPosition(bufferPosition:any):any;
bufferRangeForScopeAtPosition(selector:any, position:any):any;
tokenForBufferPosition(bufferPosition:any):any;
getGrammar():IGrammar;
setGrammar(grammar:IGrammar):any;
reloadGrammar():any;
clipScreenPosition(screenPosition:any, options:any):any;
findWrapColumn(line:any, softWrapColumn:any):any;
rangeForAllLines():TextBuffer.IRange;
getMarker(id:number):IDisplayBufferMarker;
getMarkers():IDisplayBufferMarker[];
getMarkerCount():number;
markScreenRange(range:TextBuffer.IRange, ...args:any[]):IDisplayBufferMarker;
markBufferRange(range:TextBuffer.IRange, options?:any):IDisplayBufferMarker;
markScreenPosition(screenPosition:TextBuffer.IPoint, options?:any):IDisplayBufferMarker;
markBufferPosition(bufferPosition:TextBuffer.IPoint, options?:any):IDisplayBufferMarker;
destroyMarker(id:number):any;
findMarker(params?:any):IDisplayBufferMarker;
findMarkers(params?:any):IDisplayBufferMarker[];
translateToBufferMarkerParams(params?:any):any;
findFoldMarker(attributes:any):IMarker;
findFoldMarkers(attributes:any):IMarker[];
getFoldMarkerAttributes(attributes?:any):any;
pauseMarkerObservers():any;
resumeMarkerObservers():any;
refreshMarkerScreenPositions():any;
destroy():any;
logLines(start:number, end:number):any[];
handleTokenizedBufferChange(tokenizedBufferChange:any):any;
updateScreenLines(startBufferRow:any, endBufferRow:any, bufferDelta?:number, options?:any):any;
buildScreenLines(startBufferRow:any, endBufferRow:any):any;
findMaxLineLength(startScreenRow:any, endScreenRow:any, newScreenLines:any):any;
handleBufferMarkersUpdated():any;
handleBufferMarkerCreated(marker:any):any;
createFoldForMarker(maker:any):IFold;
foldForMarker(marker:any):any;
}
interface IViewRegistry {
getView(selector:any):any;
}
interface ICursorStatic {
new (arg:{editor:IEditor; marker:IDisplayBufferMarker; id: number;}):ICursor;
}
interface ScopeDescriptor {
scopes: string[];
}
interface ICursor /* extends Theorist.Model */ {
getScopeDescriptor(): ScopeDescriptor;
screenPosition:any;
bufferPosition:any;
goalColumn:any;
visible:boolean;
needsAutoscroll:boolean;
editor:IEditor;
marker:IDisplayBufferMarker;
id: number;
destroy():any;
changePosition(options:any, fn:Function):any;
getPixelRect():any;
setScreenPosition(screenPosition:any, options?:any):any;
getScreenPosition():TextBuffer.IPoint;
getScreenRange():TextBuffer.IRange;
setBufferPosition(bufferPosition:any, options?:any):any;
getBufferPosition():TextBuffer.IPoint;
autoscroll():any;
updateVisibility():any;
setVisible(visible:boolean):any;
isVisible():boolean;
wordRegExp(arg?:any):any;
isLastCursor():boolean;
isSurroundedByWhitespace():boolean;
isBetweenWordAndNonWord():boolean;
isInsideWord():boolean;
clearAutoscroll():void;
clearSelection():void;
getScreenRow():number;
getScreenColumn():number;
getBufferRow():number;
getBufferColumn():number;
getCurrentBufferLine():string;
moveUp(rowCount:number, arg?:any):any;
moveDown(rowCount:number, arg?:any):any;
moveLeft(arg?:any):any;
moveRight(arg?:any):any;
moveToTop():any;
moveToBottom():void;
moveToBeginningOfScreenLine():void;
moveToBeginningOfLine():void;
moveToFirstCharacterOfLine():void;
moveToEndOfScreenLine():void;
moveToEndOfLine():void;
moveToBeginningOfWord():void;
moveToEndOfWord():void;
moveToBeginningOfNextWord():void;
moveToPreviousWordBoundary():void;
moveToNextWordBoundary():void;
getBeginningOfCurrentWordBufferPosition(options?:any):TextBuffer.IPoint;
getPreviousWordBoundaryBufferPosition(options?:any):TextBuffer.IPoint;
getMoveNextWordBoundaryBufferPosition(options?:any):TextBuffer.IPoint;
getEndOfCurrentWordBufferPosition(options?:any):TextBuffer.IPoint;
getBeginningOfNextWordBufferPosition(options?:any):TextBuffer.IPoint;
getCurrentWordBufferRange(options?:any):TextBuffer.IPoint;
getCurrentLineBufferRange(options?:any):TextBuffer.IPoint;
getCurrentParagraphBufferRange():any;
getCurrentWordPrefix():string;
isAtBeginningOfLine():boolean;
getIndentLevel():number;
isAtEndOfLine():boolean;
getScopes():string[];
hasPrecedingCharactersOnLine():boolean;
getMarker(): Marker;
}
interface ILanguageMode {
// TBD
}
interface ISelection {
// https://atom.io/docs/api/v1.7.3/Selection
// Event Subscription
onDidChangeRange(callback: (event: {
oldBufferRange: TextBuffer.IRange;
oldScreenRange: TextBuffer.IRange;
newBufferRange: TextBuffer.IRange;
newScreenRange: TextBuffer.IRange;
selection: ISelection;
}) => {}): Disposable;
onDidDestroy(callback: () => {}): Disposable;
// Managing the selection range
getScreenRange(): TextBuffer.IRange;
setScreenRange(screenRange: TextBuffer.IRange, options?: {
preserveFolds?: boolean;
autoscroll?: boolean;
}): void;
getBufferRange(): TextBuffer.IRange;
setBufferRange(bufferRange: TextBuffer.IRange, options?: {
preserveFolds?: boolean;
autoscroll?: boolean;
}): void;
getBufferRowRange(): [number];
// Info about the selection
isEmpty(): boolean;
isReversed(): boolean;
isSingleScreenLine(): boolean;
getText(): string;
intersectsBufferRange(bufferRange: TextBuffer.IRange): boolean;
intersectsWith(otherSelection: ISelection): boolean;
// Modifying the selected range
clear(options?: {autoscroll?: boolean}): void;
selectToScreenPosition(position: any): void;
selectToBufferPosition(position: any): void;
selectRight(columnCount?: number): void;
selectLeft(columnCount?: number): void;
selectUp(rowCount: number): void;
selectDown(rowCount: number): void;
selectToTop(): void;
selectToBottom(): void;
selectAll(): void;
selectToBeginningOfLine(): void;
selectToFirstCharacterOfLine(): void;
selectToEndOfLine(): void;
selectToEndOfBufferLine(): void;
selectToBeginningOfWord(): void;
selectToEndOfWord(): void;
selectToBeginningOfNextWord(): void;
selectToPreviousWordBoundary(): void;
selectToNextWordBoundary(): void;
selectToPreviousSubwordBoundary(): void;
selectToNextSubwordBoundary(): void;
selectToBeginningOfNextParagraph(): void;
selectToBeginningOfPreviousParagraph(): void;
selectWord(): TextBuffer.IRange;
expandOverWord(): void;
selectLine(row?: number): void;
expandOverLine(): void;
// Modifying the selected text
insertText(text: string, options?: {
select: boolean;
autoIndent: boolean;
autoIndentNewline: boolean;
autoDecreaseIndent: boolean;
normalizeLineEndings?: boolean;
undo?: 'skip';
}): void;
backspace(): void;
deleteToPreviousWordBoundary(): void;
deleteToNextWordBoundary(): void;
deleteToBeginningOfWord(): void;
deleteToBeginningOfLine(): void;
delete(): void;
deleteToEndOfLine(): void;
deleteToEndOfWord(): void;
deleteToBeginningOfSubword(): void;
deleteToEndOfSubword(): void;
deleteSelectedText(): void;
deleteLine(): void;
joinLines(): void;
outdentSelectedRows(): void;
autoIndentSelectedRows(): void;
toggleLineComments(): void;
cutToEndOfLine(): void;
cutToEndOfBufferLine(): void;
cut(maintainClipboard?: boolean, fullLine?: boolean): void;
copy(maintainClipboard?: boolean, fullLine?: boolean): void;
fold(): void;
indentSelectedRows(): void;
// Managing multiple selections
addSelectionBelow(): void;
addSelectionAbove(): void;
merge(otherSelection: ISelection, options?: {
preserveFolds?: boolean;
autoscroll?: boolean;
}): void;
// Comparing to other selections
compare(otherSelection: ISelection): any;
}
interface IDecorationParams {
id?: number;
class: string;
type: any /* string or string[] */;
}
interface IDecorationStatic {
isType(decorationParams:IDecorationParams, type:any /* string or string[] */):boolean;
new (marker:IDisplayBufferMarker, displayBuffer:IDisplayBuffer, params: IDecorationParams): IDecoration;
}
interface IDecoration extends Emissary.IEmitter {
marker: IDisplayBufferMarker;
displayBuffer: IDisplayBuffer;
params: IDecorationParams
id: number;
flashQueue: any[];
isDestroyed: boolean;
destroy():void;
update(newParams:IDecorationParams):void;
getMarker():IDisplayBufferMarker;
getParams():IDecorationParams;
isType(type:string):boolean;
matchesPattern(decorationPattern:{[key:string]:IDecorationParams;}):boolean;
flash(klass:string, duration?:number):void;
consumeNextFlash():any;
}
interface IEditor {
// Serializable.includeInto(Editor);
// Delegator.includeInto(Editor);
deserializing:boolean;
callDisplayBufferCreatedHook:boolean;
registerEditor:boolean;
buffer:TextBuffer.ITextBuffer;
languageMode: ILanguageMode;
cursors:ICursor[];
selections: ISelection[];
suppressSelectionMerging:boolean;
updateBatchDepth: number;
selectionFlashDuration: number;
softTabs: boolean;
displayBuffer: IDisplayBuffer;
id:number;
behaviors:any;
declaredPropertyValues: any;
eventHandlersByEventName: any;
eventHandlersByNamespace: any;
lastOpened: number;
subscriptionCounts: any;
subscriptionsByObject: any; /* WeakMap */
subscriptions: Emissary.ISubscription[];
destroy():void;
mini: any;
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;
isDestroyed():boolean;
copy():IEditor;
getTitle():string;
getLongTitle():string;
setVisible(visible:boolean):void;
setMini(mini:any):void;
setScrollTop(scrollTop:any):void;
getScrollTop():number;
setScrollLeft(scrollLeft:any):void;
getScrollLeft():number;
setEditorWidthInChars(editorWidthInChars:any):void;
getSoftWrapColumn():number;
getSoftTabs():boolean;
setSoftTabs(softTabs:boolean):void;
getSoftWrap():boolean;
setSoftWrap(softWrap:any):void;
getTabText():string;
getTabLength():number;
setTabLength(tabLength:any):void;
usesSoftTabs():boolean;
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):string;
save():void;
saveAs(filePath:any):void;
copyPathToClipboard():void;
getPath():string;
getText():string;
setText(text:any):void;
getTextInRange(range:any):any;
getLineCount():number;
getBuffer():TextBuffer.ITextBuffer;
getURI():string;
isBufferRowBlank(bufferRow:any):boolean;
isBufferRowCommented(bufferRow:any):void;
nextNonBlankBufferRow(bufferRow:any):void;
getEofBufferPosition():TextBuffer.IPoint;
getLastBufferRow():number;
bufferRangeForBufferRow(row:any, options:any):TextBuffer.IRange;
lineForBufferRow(row:number):string;
lineLengthForBufferRow(row:number):number;
scan():any;
scanInBufferRange():any;
backwardsScanInBufferRange():any;
isModified():boolean;
isEmpty():boolean;
shouldPromptToSave():boolean;
screenPositionForBufferPosition(bufferPosition:any, options?:any):TextBuffer.IPoint;
bufferPositionForScreenPosition(screenPosition:any, options?:any):TextBuffer.IPoint;
screenRangeForBufferRange(bufferRange:any):TextBuffer.IRange;
bufferRangeForScreenRange(screenRange:any):TextBuffer.IRange;
clipScreenPosition(screenPosition:any, options:any):TextBuffer.IRange;
lineForScreenRow(row:any):ITokenizedLine;
linesForScreenRows(start?:any, end?:any):ITokenizedLine[];
getScreenLineCount():number;
getMaxScreenLineLength():number;
getLastScreenRow():number;
bufferRowsForScreenRows(startRow:any, endRow:any):any[];
bufferRowForScreenRow(row:any):number;
scopesForBufferPosition(bufferPosition:any):string[];
bufferRangeForScopeAtCursor(selector:string):any;
tokenForBufferPosition(bufferPosition:any):IToken;
getCursorScopes():string[];
logCursorScope():void;
insertText(text:string, options?:any):TextBuffer.IRange[];
insertNewline():TextBuffer.IRange[];
insertNewlineBelow():TextBuffer.IRange[];
insertNewlineAbove():any;
indent(options?:any):any;
backspace():any[];
// deprecated backspaceToBeginningOfWord():any[];
// deprecated backspaceToBeginningOfLine():any[];
deleteToBeginningOfWord():any[];
deleteToBeginningOfLine():any[];
delete():any[];
deleteToEndOfLine():any[];
deleteToEndOfWord():any[];
deleteLine():TextBuffer.IRange[];
indentSelectedRows():TextBuffer.IRange[][];
outdentSelectedRows():TextBuffer.IRange[][];
toggleLineCommentsInSelection():TextBuffer.IRange[];
autoIndentSelectedRows():TextBuffer.IRange[][];
normalizeTabsInBufferRange(bufferRange:any):any;
cutToEndOfLine():boolean[];
cutSelectedText():boolean[];
copySelectedText():boolean[];
pasteText(options?:any):TextBuffer.IRange[];
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):boolean;
isFoldableAtScreenRow(screenRow:any):boolean;
createFold(startRow:any, endRow:any):IFold;
destroyFoldWithId(id:any):any;
destroyFoldsIntersectingBufferRange(bufferRange:any):any;
toggleFoldAtBufferRow(bufferRow:any):any;
isFoldedAtCursorRow():boolean;
isFoldedAtBufferRow(bufferRow:any):boolean;
isFoldedAtScreenRow(screenRow:any):boolean;
largestFoldContainingBufferRow(bufferRow:any):boolean;
largestFoldStartingAtScreenRow(screenRow:any):any;
outermostFoldsInBufferRowRange(startRow:any, endRow:any):any[];
moveLineUp():ISelection[];
moveLineDown():ISelection[];
duplicateLines():any[][];
// duprecated duplicateLine():any[][];
mutateSelectedText(fn:(selection:ISelection)=>any):any;
replaceSelectedText(options:any, fn:(selection:string)=>any):any;
decorationsForScreenRowRange(startScreenRow:any, endScreenRow:any):{[id:number]: IDecoration[]};
decorateMarker(marker:IDisplayBufferMarker, decorationParams: {type:string; class: string;}):IDecoration;
decorationForId(id:number):IDecoration;
getMarker(id:number):IDisplayBufferMarker;
getMarkers():IDisplayBufferMarker[];
findMarkers(...args:any[]):IDisplayBufferMarker[];
markScreenRange(...args:any[]):IDisplayBufferMarker;
markBufferRange(...args:any[]):IDisplayBufferMarker;
markScreenPosition(...args:any[]):IDisplayBufferMarker;
markBufferPosition(...args:any[]):IDisplayBufferMarker;
destroyMarker(...args:any[]):boolean;
getMarkerCount():number;
hasMultipleCursors():boolean;
getCursors():ICursor[];
getCursor():ICursor;
addCursorAtScreenPosition(screenPosition:any):ICursor;
addCursorAtBufferPosition(bufferPosition:any):ICursor;
addCursor(marker:any):ICursor;
removeCursor(cursor:any):ICursor[];
addSelection(marker:any, options:any):ISelection;
addSelectionForBufferRange(bufferRange:any, options:any):ISelection;
setSelectedBufferRange(bufferRange:any, options:any):any;
setSelectedBufferRanges(bufferRanges:any, options:any):any;
removeSelection(selection:ISelection):any;
clearSelections():boolean;
consolidateSelections():boolean;
selectionScreenRangeChanged(selection:any):void;
getSelections():ISelection[];
getSelection(index?:number):ISelection;
getLastSelection():ISelection;
getSelectionsOrderedByBufferPosition():ISelection[];
getLastSelectionInBuffer():ISelection;
selectionIntersectsBufferRange(bufferRange:any):any;
setCursorScreenPosition(position:TextBuffer.IPoint, options?:any):any;
getCursorScreenPosition():TextBuffer.IPoint;
getCursorScreenRow():number;
setCursorBufferPosition(position:any, options?:any):any;
getCursorBufferPosition():TextBuffer.IPoint;
getSelectedScreenRange():TextBuffer.IRange;
getSelectedBufferRange():TextBuffer.IRange;
getSelectedBufferRanges():TextBuffer.IRange[];
getSelectedText():string;
getTextInBufferRange(range:TextBuffer.IRange):string;
setTextInBufferRange(range:TextBuffer.IRange | any[], text:string):any;
getCurrentParagraphBufferRange():TextBuffer.IRange;
getWordUnderCursor(options?:any):string;
moveCursorUp(lineCount?:number):void;
moveCursorDown(lineCount?:number):void;
moveCursorLeft():void;
moveCursorRight():void;
moveCursorToTop():void;
moveCursorToBottom():void;
moveCursorToBeginningOfScreenLine():void;
moveCursorToBeginningOfLine():void;
moveCursorToFirstCharacterOfLine():void;
moveCursorToEndOfScreenLine():void;
moveCursorToEndOfLine():void;
moveCursorToBeginningOfWord():void;
moveCursorToEndOfWord():void;
moveCursorToBeginningOfNextWord():void;
moveCursorToPreviousWordBoundary():void;
moveCursorToNextWordBoundary():void;
moveCursorToBeginningOfNextParagraph():void;
moveCursorToBeginningOfPreviousParagraph():void;
moveToBottom():void;
scrollToCursorPosition(options:any):any;
pageUp():void;
pageDown():void;
selectPageUp():void;
selectPageDown():void;
getRowsPerPage():number;
moveCursors(fn:(cursor:ICursor)=>any):any;
cursorMoved(event:any):void;
selectToScreenPosition(position:TextBuffer.IPoint):any;
selectRight():ISelection[];
selectLeft():ISelection[];
selectUp(rowCount?:number):ISelection[];
selectDown(rowCount?:number):ISelection[];
selectToTop():ISelection[];
selectAll():ISelection[];
selectToBottom():ISelection[];
selectToBeginningOfLine():ISelection[];
selectToFirstCharacterOfLine():ISelection[];
selectToEndOfLine():ISelection[];
selectToPreviousWordBoundary():ISelection[];
selectToNextWordBoundary():ISelection[];
selectLine():ISelection[];
selectLinesContainingCursors():ISelection[];
addSelectionBelow():ISelection[];
addSelectionAbove():ISelection[];
splitSelectionsIntoLines():any[];
transpose():TextBuffer.IRange[];
upperCase():boolean[];
lowerCase():boolean[];
joinLines():any[];
selectToBeginningOfWord():ISelection[];
selectToEndOfWord():ISelection[];
selectToBeginningOfNextWord():ISelection[];
selectWord():ISelection[];
selectToBeginningOfNextParagraph():ISelection[];
selectToBeginningOfPreviousParagraph():ISelection[];
selectMarker(marker:any):any;
mergeCursors():number[];
expandSelectionsForward():any;
expandSelectionsBackward(fn:(selection:ISelection)=>any):ISelection[];
finalizeSelections():boolean[];
mergeIntersectingSelections():any;
preserveCursorPositionOnBufferReload():Emissary.ISubscription;
getGrammar(): IGrammar;
setGrammar(grammer:IGrammar):void;
reloadGrammar():any;
shouldAutoIndent():boolean;
shouldShowInvisibles():boolean;
updateInvisibles():void;
transact(fn:Function):any;
beginTransaction():ITransaction;
commitTransaction():any;
abortTransaction():any[];
inspect():string;
logScreenLines(start:number, end:number):any[];
handleTokenization():void;
handleGrammarChange():void;
handleMarkerCreated(marker:any):any;
getSelectionMarkerAttributes():{type: string; editorId: number; invalidate: string; };
getVerticalScrollMargin():number;
setVerticalScrollMargin(verticalScrollMargin:number):void;
getHorizontalScrollMargin():number;
setHorizontalScrollMargin(horizontalScrollMargin:number):void;
getLineHeightInPixels():number;
setLineHeightInPixels(lineHeightInPixels:number):void;
batchCharacterMeasurement(fn:Function):void;
getScopedCharWidth(scopeNames:any, char:any):any;
setScopedCharWidth(scopeNames:any, char:any, width:any):any;
getScopedCharWidths(scopeNames:any):any;
clearScopedCharWidths():any;
getDefaultCharWidth():number;
setDefaultCharWidth(defaultCharWidth:number):void;
setHeight(height:number):void;
getHeight():number;
getClientHeight():number;
setWidth(width:number):void;
getWidth():number;
getScrollTop():number;
setScrollTop(scrollTop:number):void;
getScrollBottom():number;
setScrollBottom(scrollBottom:number):void;
getScrollLeft():number;
setScrollLeft(scrollLeft:number):void;
getScrollRight():number;
setScrollRight(scrollRight:number):void;
getScrollHeight():number;
getScrollWidth():number;
getVisibleRowRange():number;
intersectsVisibleRowRange(startRow:any, endRow:any):any;
selectionIntersectsVisibleRowRange(selection:any):any;
pixelPositionForScreenPosition(screenPosition:any):any;
pixelPositionForBufferPosition(bufferPosition:any):any;
screenPositionForPixelPosition(pixelPosition:any):any;
pixelRectForScreenRange(screenRange:any):any;
scrollToScreenRange(screenRange:any, options:any):any;
scrollToScreenPosition(screenPosition:any, options:any):any;
scrollToBufferPosition(bufferPosition:any, options:any):any;
horizontallyScrollable():any;
verticallyScrollable():any;
getHorizontalScrollbarHeight():any;
setHorizontalScrollbarHeight(height:any):any;
getVerticalScrollbarWidth():any;
setVerticalScrollbarWidth(width:any):any;
// deprecated joinLine():any;
onDidChange(callback: Function): Disposable;
onDidDestroy(callback: Function): Disposable;
onDidStopChanging(callback: Function): Disposable;
onDidChangeCursorPosition(callback: Function): Disposable;
onDidSave(callback: (event: { path: string }) => void): Disposable;
decorateMarker(marker: Marker, options: any): Decoration;
getLastCursor(): ICursor;
}
interface IGrammar {
bundledPackage: boolean;
emitter: any;
fileTypes: [string];
firstLineRegex: any;
foldingStopMarker: any;
includedGrammarScopes: [any];
initialRule: any;
injectionSelector: any;
injections: any;
maxTokensPerLine: Number;
name: string;
packageName: string;
path: string;
rawPatterns: [any];
rawRepository: any;
registration: Disposable;
registry: any;
repository: Object;
scopeName: string;
tokenizeLines: (text: string) => any;
// TBD
}
interface IGrammars {
grammarForScopeName(scope: string): IGrammar;
}
interface IPane /* extends Theorist.Model */ {
itemForURI: (uri:string)=>IEditor;
items:any[];
activeItem:any;
serializeParams():any;
deserializeParams(params:any):any;
getViewClass():any; // return type are PaneView
isActive():boolean;
isDestroyed():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[];
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 IProjectStatic {
pathForRepositoryUrl(repoUrl:string):string;
new (arg?:{path:any; buffers:any[];}):IProject;
}
interface IProject /* extends Theorist.Model */ {
// Serializable.includeInto(Project);
path:string;
/** deprecated */
rootDirectory?:PathWatcher.IDirectory;
rootDirectories:PathWatcher.IDirectory[];
serializeParams():any;
deserializeParams(params:any):any;
destroyed():any;
destroyRepo():any;
destroyUnretainedBuffers():any;
getRepo():IGit;
getPath():string;
setPath(projectPath:string):any;
getRootDirectory():PathWatcher.IDirectory;
resolve(uri:string):string;
relativize(fullPath:string):string;
contains(pathToCheck:string):boolean;
open(filePath:string, options?:any):Q.Promise;
openSync(filePath:string, options?:any):IEditor;
getBuffers():TextBuffer.ITextBuffer;
isPathModified(filePath:string):boolean;
findBufferForPath(filePath:string):TextBuffer.ITextBuffer;
bufferForPathSync(filePath:string):TextBuffer.ITextBuffer;
bufferForPath(filePath:string):Q.Promise;
bufferForId(id:any):TextBuffer.ITextBuffer;
buildBufferSync(absoluteFilePath:string):TextBuffer.ITextBuffer;
buildBuffer(absoluteFilePath:string):Q.Promise;
addBuffer(buffer:TextBuffer.ITextBuffer, options?:any):any;
addBufferAtIndex(buffer:TextBuffer.ITextBuffer, index:number, options?:any):any;
scan(regex:any, options:any, iterator:any):Q.Promise;
replace(regex:any, replacementText:any, filePaths:any, iterator:any):Q.Promise;
buildEditorForBuffer(buffer:any, editorOptions:any):IEditor;
eachBuffer(...args:any[]):any;
onDidChangePaths(callback: Function): Disposable;
}
interface IWorkspaceStatic {
new():IWorkspace;
}
interface IWorkspacePanelOptions{
item:any;
visible?:boolean;
priority?:number;
}
interface Panel{
getItem():any;
getPriority():any;
isVisible():boolean;
show():void;
hide():void;
}
interface IWorkspace {
addBottomPanel(options:IWorkspacePanelOptions):Panel;
addLeftPanel(options:IWorkspacePanelOptions):Panel;
addRightPanel(options:IWorkspacePanelOptions):Panel;
addTopPanel(options:IWorkspacePanelOptions):Panel;
addModalPanel(options:IWorkspacePanelOptions):Panel;
addOpener(opener: Function): any;
deserializeParams(params:any):any;
serializeParams():{paneContainer:any;fullScreen:boolean;};
eachEditor(callback: Function): void;
getTextEditors():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;
observeTextEditors(callback: Function): Disposable;
reopenItemSync():any;
registerOpener(opener:(urlToOpen:string)=>any):void;
unregisterOpener(opener:Function):void;
getOpeners():any;
getActivePane(): IPane;
getActivePaneItem(): IPane;
getActiveTextEditor(): IEditor;
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;
isTextEditor(object: any): boolean;
onDidChangeActivePaneItem(item:any):Disposable;
}
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 IPackage {
mainModulePath: string;
mainModule: any;
enable(): void;
disable(): void;
isTheme(): boolean;
getType(): string;
getStylesheetType(): string;
load(): IPackage;
reset(): void;
activate(): Q.Promise;
activateNow(): void;
// 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):Q.Promise;
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 INotifications {
addInfo: Function;
addError: Function;
addSuccess: Function;
addWarning: Function;
}
interface IThemeManager {
// TBD
}
interface IContextMenuManager {
// TBD
}
interface IMenuManager {
// TBD
}
interface IClipboard {
write(text:string, metadata?:any):any;
read():string;
}
interface ISyntax {
// TBD
}
interface IWindowEventHandler {
// TBD
}
interface IAtomStatic extends ISerializationStatic {
version: number;
loadSettings: IAtomSettings;
/* Load or create the Atom environment in the given mode */
loadOrCreate(mode:'editor'):IAtom;
/* Load or create the Atom environment in the given mode */
loadOrCreate(mode:'spec'):IAtom;
/* Load or create the Atom environment in the given mode */
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;
}
class Disposable {
constructor(disposalAction:any)
dispose():void
}
// https://atom.io/docs/api/v0.106.0/api/classes/Atom.html
/* Global Atom class : instance members */
interface IAtom {
constructor:IAtomStatic;
state:IAtomState;
mode:string;
deserializers:IDeserializerManager;
config: IConfig;
commands: ICommandRegistry;
grammars: IGrammars;
keymaps: IKeymapManager;
keymap: IKeymapManager;
packages: IPackageManager;
themes: IThemeManager;
contextManu: IContextMenuManager;
menu: IMenuManager;
notifications: INotifications; // https://github.com/atom/notifications
clipboard:IClipboard;
syntax:ISyntax;
views: IViewRegistry;
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;
services: any; // TODO: New services api
}
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 ITokenizedBuffer {
// TBD
}
interface ITokenizedLine {
// TBD
}
interface IToken {
// TBD
}
interface IFoldStatic {
new (displayBuffer:IDisplayBuffer, marker:IMarker):IFold;
// TBD
}
interface IFold {
id:number;
displayBuffer:IDisplayBuffer;
marker:IMarker;
// TBD
}
interface IDisplayBufferMarkerStatic {
new (_arg:{bufferMarker:IMarker; displayBuffer: IDisplayBuffer}):IDisplayBufferMarker;
}
interface IDisplayBufferMarker extends Emissary.IEmitter, Emissary.ISubscriber {
constructor:IDisplayBufferMarkerStatic;
id: number;
bufferMarkerSubscription:any;
oldHeadBufferPosition:TextBuffer.IPoint;
oldHeadScreenPosition:TextBuffer.IPoint;
oldTailBufferPosition:TextBuffer.IPoint;
oldTailScreenPosition:TextBuffer.IPoint;
wasValid:boolean;
bufferMarker: IMarker;
displayBuffer: IDisplayBuffer;
globalPauseCount:number;
globalQueuedEvents:any;
subscriptions:Emissary.ISubscription[];
subscriptionsByObject:any; // WeakMap
copy(attributes?:any /* maybe IMarker */):IDisplayBufferMarker;
getScreenRange():TextBuffer.IRange;
setScreenRange(screenRange:any, options:any):any;
getBufferRange():TextBuffer.IRange;
setBufferRange(bufferRange:any, options:any):any;
getPixelRange():any;
getHeadScreenPosition():TextBuffer.IPoint;
setHeadScreenPosition(screenPosition:any, options:any):any;
getHeadBufferPosition():TextBuffer.IPoint;
setHeadBufferPosition(bufferPosition:any):any;
getTailScreenPosition():TextBuffer.IPoint;
setTailScreenPosition(screenPosition:any, options:any):any;
getTailBufferPosition():TextBuffer.IPoint;
setTailBufferPosition(bufferPosition:any):any;
plantTail():boolean;
clearTail():boolean;
hasTail():boolean;
isReversed():boolean;
isValid():boolean;
isDestroyed():boolean;
getAttributes():any;
setAttributes(attributes:any):any;
matchesAttributes(attributes:any):any;
destroy():any;
isEqual(other:IDisplayBufferMarker):boolean;
compare(other:IDisplayBufferMarker):boolean;
inspect():string;
destroyed():any;
notifyObservers(_arg:any):any;
}
interface ITransaction {
// TBD
}
interface IMarker extends Emissary.IEmitter {
// Serializable.includeInto(Editor);
// Delegator.includeInto(Editor);
// TBD
}
interface ITaskStatic {
new(taskPath:any):ITask;
}
interface ITask {
// TBD
}
}
declare var atom:AtomCore.IAtom;
declare module "atom" {
import spacePen = require("space-pen");
import Q = require("q");
var $:typeof spacePen.$;
var $$:typeof spacePen.$$;
var $$$:typeof spacePen.$$$;
var BufferedNodeProcess:AtomCore.IBufferedNodeProcessStatic;
var BufferedProcess:AtomCore.IBufferedProcessStatic;
var Git:AtomCore.IGitStatic;
var Point:TextBuffer.IPointStatic;
var Range:TextBuffer.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 EditorView extends View {
static characterWidthCache:any;
static configDefaults:any;
static nextEditorId:number;
static content(params:any):void;
static classes(_arg?:{mini?:any}):string;
vScrollMargin:number;
hScrollMargin:number;
lineHeight:any;
charWidth:any;
charHeight:any;
cursorViews:any[];
selectionViews:any[];
lineCache:any[];
isFocused:any;
editor:AtomCore.IEditor;
attached:any;
lineOverdraw:number;
pendingChanges:any[];
newCursors:any[];
newSelections:any[];
redrawOnReattach:any;
bottomPaddingInLines:number;
active:boolean;
id:number;
gutter:AtomCore.IGutterView;
overlayer:JQuery;
scrollView:JQuery;
renderedLines:JQuery;
underlayer:JQuery;
hiddenInput:JQuery;
verticalScrollbar:JQuery;
verticalScrollbarContent:JQuery;
constructor(editor:AtomCore.IEditor);
initialize(editorOrOptions:AtomCore.IEditor):void; // return type are same as editor method.
initialize(editorOrOptions?:{editor: AtomCore.IEditor; mini:any; placeholderText:any}):void;
initialize(editorOrOptions:{}):void; // compatible for spacePen.View
bindKeys():void;
getEditor():AtomCore.IEditor;
getText():string;
setText(text:string):void;
insertText(text:string, options?:any):TextBuffer.IRange[];
setHeightInLines(heightInLines:number):number;
setWidthInChars(widthInChars:number):number;
pageDown():void;
pageUp():void;
getPageRows():number;
setShowInvisibles(showInvisibles:boolean):void;
setInvisibles(invisibles:{ eol:string; space: string; tab: string; cr: string; }):void;
setShowIndentGuide(showIndentGuide:boolean):void;
setPlaceholderText(placeholderText:string):void;
getPlaceholderText():string;
checkoutHead():boolean;
configure():Emissary.ISubscription;
handleEvents():void;
handleInputEvents():void;
bringHiddenInputIntoView():JQuery;
selectOnMousemoveUntilMouseup():any;
afterAttach(onDom:any):any;
edit(editor:AtomCore.IEditor):any;
getModel():AtomCore.IEditor;
setModel(editor:AtomCore.IEditor):any;
showBufferConflictAlert(editor:AtomCore.IEditor):any;
scrollTop(scrollTop:number, options?:any):any;
scrollBottom(scrollBottom?:number):any;
scrollLeft(scrollLeft?:number):number;
scrollRight(scrollRight?:number):any;
scrollToBottom():any;
scrollToCursorPosition():any;
scrollToBufferPosition(bufferPosition:any, options:any):any;
scrollToScreenPosition(screenPosition:any, options:any):any;
scrollToPixelPosition(pixelPosition:any, options:any):any;
highlightFoldsContainingBufferRange(bufferRange:any):any;
saveScrollPositionForEditor():any;
toggleSoftTabs():any;
toggleSoftWrap():any;
calculateWidthInChars():number;
calculateHeightInLines():number;
getScrollbarWidth():number;
setSoftWrap(softWrap:boolean):any;
setFontSize(fontSize:number):any;
getFontSize():number;
setFontFamily(fontFamily?:string):any;
getFontFamily():string;
setLineHeight(lineHeight:number):any;
redraw():any;
splitLeft():any;
splitRight():any;
splitUp():any;
splitDown():any;
getPane():any; // return type are PaneView
remove(selector:any, keepData:any):any;
beforeRemove():any;
getCursorView(index?:number):any; // return type are CursorView
getCursorViews():any[]; // return type are CursorView[]
addCursorView(cursor:any, options:any):any; // return type are CursorView
removeCursorView(cursorView:any):any;
getSelectionView(index?:number):any; // return type are SelectionView
getSelectionViews():any[]; // return type are SelectionView[]
addSelectionView(selection:any):any;
removeSelectionView(selectionView:any):any;
removeAllCursorAndSelectionViews():any[];
appendToLinesView(view:any):any;
scrollVertically(pixelPosition:any, _arg:any):any;
scrollHorizontally(pixelPosition:any):any;
calculateDimensions():number;
recalculateDimensions():any;
updateLayerDimensions():any;
isHidden():boolean;
clearRenderedLines():void;
resetDisplay():any;
requestDisplayUpdate():any;
updateDisplay(options?:any):any;
updateCursorViews():any;
shouldUpdateCursor(cursorView:any):any;
updateSelectionViews():any[];
shouldUpdateSelection(selectionView:any):any;
syncCursorAnimations():any[];
autoscroll(suppressAutoscroll?:any):any[];
updatePlaceholderText():any;
updateRenderedLines(scrollViewWidth:any):any;
computeSurroundingEmptyLineChanges(change:any):any;
computeIntactRanges(renderFrom:any, renderTo:any):any;
truncateIntactRanges(intactRanges:any, renderFrom:any, renderTo:any):any;
clearDirtyRanges(intactRanges:any):any;
clearLine(lineElement:any):any;
fillDirtyRanges(intactRanges:any, renderFrom:any, renderTo:any):any;
updatePaddingOfRenderedLines():any;
getFirstVisibleScreenRow():number;
getLastVisibleScreenRow():number;
isScreenRowVisible():boolean;
handleScreenLinesChange(change:any):any;
buildLineElementForScreenRow(screenRow:any):any;
buildLineElementsForScreenRows(startRow:any, endRow:any):any;
htmlForScreenRows(startRow:any, endRow:any):any;
htmlForScreenLine(screenLine:any, screenRow:any):any;
buildIndentation(screenRow:any, editor:any):any;
buildHtmlEndOfLineInvisibles(screenLine:any):any;
getEndOfLineInvisibles(screenLine:any):any;
lineElementForScreenRow(screenRow:any):any;
toggleLineCommentsInSelection():any;
pixelPositionForBufferPosition(position:any):any;
pixelPositionForScreenPosition(position:any):any;
positionLeftForLineAndColumn(lineElement:any, screenRow:any, screenColumn:any):any;
measureToColumn(lineElement:any, tokenizedLine:any, screenColumn:any):any;
getCharacterWidthCache(scopes:any, char:any):any;
setCharacterWidthCache(scopes:any, char:any, val:any):any;
clearCharacterWidthCache():any;
pixelOffsetForScreenPosition(position:any):any;
screenPositionFromMouseEvent(e:any):any;
highlightCursorLine():any;
copyPathToClipboard():any;
buildLineHtml(_arg:any):any;
updateScopeStack(line:any, scopeStack:any, desiredScopes:any):any;
pushScope(line:any, scopeStack:any, scope:any):any;
popScope(line:any, scopeStack:any):any;
buildEmptyLineHtml(showIndentGuide:any, eolInvisibles:any, htmlEolInvisibles:any, indentation:any, editor:any, mini:any):any;
replaceSelectedText(replaceFn:(str:string)=>string):any;
consolidateSelections(e:any):any;
logCursorScope():any;
logScreenLines(start:any, end:any):any;
logRenderedLines():any;
}
class ScrollView extends View {
// TBD
}
interface ISelectListItem {
/** e.g. application:about */
eventName:string;
/** e.g. Application: About */
eventDescription:string;
}
class SelectListView extends View {
static content():any;
maxItems:number;
scheduleTimeout:any;
inputThrottle:number;
cancelling:boolean;
items:any[];
list:JQuery;
filterEditorView: JQuery;
previouslyFocusedElement:JQuery;
initialize():any;
schedulePopulateList():number;
setItems(items:any[]):any;
setError(message?:string):any;
setLoading(message?:string):any;
getFilterQuery():string;
populateList():any;
getEmptyMessage(itemCount?:any, filteredItemCount?:any):string;
setMaxItems(maxItems:number):void;
selectPreviousItemView():any;
selectNextItemView():any;
selectItemView(view:any):any;
scrollToItemView(view:any):any;
getSelectedItemView():any;
getSelectedItem():any;
confirmSelection():any;
viewForItem(item:any):JQuery|string|HTMLElement|View; // You must override this method!
confirmed(item:any):any; // You must override this method!
getFilterKey():any;
focusFilterEditor():any;
storeFocusedElement():any;
restoreFocus():any;
cancelled():any;
cancel():any;
}
var WorkspaceView:AtomCore.IWorkspaceViewStatic;
var Task:AtomCore.ITaskStatic;
var Workspace:AtomCore.IWorkspaceStatic;
}