Skip to content

Instantly share code, notes, and snippets.

@fdecampredon
Created October 23, 2012 17:24
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fdecampredon/3940192 to your computer and use it in GitHub Desktop.
Save fdecampredon/3940192 to your computer and use it in GitHub Desktop.
TypeScript CodeMirror Definition File
interface CodeMirrorScrollInfo {
x:number;
y:number;
width:number;
height:number;
}
interface CodeMirrorCoords {
x:number;
y:number;
yBot:number;
}
interface CodeMirrorPosition {
line:number;
ch:number;
}
interface CodeMirrorHistorySize {
undo:number;
redo:number;
}
interface CodeMirrorToken {
start:number;
end:number;
string:string;
className:string;
state:any;
}
interface CodeMirrorMarkTextOptions {
inclusiveLeft:bool;
inclusiveRight:bool;
startStype:string;
endStyle:string;
}
interface CodeMirrorBookMark {
clear():void;
find():CodeMirrorPosition;
}
interface CodeMirrorLineHandle {
}
interface CodeMirrorLineInfo {
line:number;
handler:CodeMirrorLineHandle;
text:string;
markerText:string;
markerClass:string;
lineClass:string;
bgClass:string;
}
interface CodeMirrorViewPort {
from:number;
to:number;
}
interface CodeMirrorChange {
from:CodeMirrorPosition;
to:CodeMirrorPosition;
text:string[];
next:CodeMirrorChange;
}
interface CodeMirrorChangeListener {
(editor:CodeMirrorEditor,change:CodeMirrorChange): void;
}
interface CodeMirrorViewPortChangeListener {
(editor:CodeMirrorEditor,from:CodeMirrorPosition,to:CodeMirrorPosition): void;
}
interface CodeMirrorStream {
eol():bool;
sol():bool;
peek():string;
next():string;
eat(match:any):string;
eatWhile(match:any):bool;
eatSpace():bool;
skipToEnd():void;
skipTo(ch:string):bool;
match(pattern:RegExp, consume:bool, caseFold:bool):bool;
backUp(n:number):void;
column():number;
indentation():number;
current():string;
string:string;
pos:number;
}
interface CodeMirrorModeDefition {
(options:CodeMirrorOptions,modeOptions:any):CodeMirrorMode;
}
interface CodeMirrorMode {
startState():any;
token(stream:CodeMirrorStream,state:any):string;
blankLine?(state:any):string;
copyState?(state:any):any;
indent?(state:any, textAfter:string,text:String):number;
electricChars?:string;
}
interface CodeMirrorEditor {
getValue(): string;
setValue(valu:string):void;
getSelection():string;
replaceSelection(value:string):void;
setSize(width:number,height:number):void;
focus():void;
scrollTo(x:number,y:number):void;
getScrollInfo():CodeMirrorScrollInfo;
setOption(option:string,value:any);
getOption(option:string):any;
getMode():CodeMirrorMode;
cursorCoords(start:bool,mode:string):CodeMirrorCoords;
charCoords(pos:CodeMirrorPosition,mode:string):CodeMirrorCoords;
undo():void;
redo():void;
historySize():CodeMirrorHistorySize;
clearHistory():void;
getHistory():any;
setHistory(history:any);
indentLine(line:number,dir?:bool);
getTokenAt(pos:CodeMirrorPosition):CodeMirrorToken;
markText(from:CodeMirrorPosition,to:CodeMirrorPosition,className:string,
option?:CodeMirrorMarkTextOptions):CodeMirrorBookMark;
setBookmark(pos:CodeMirrorPosition):CodeMirrorBookMark;
findMarksAt(pos:CodeMirrorPosition):CodeMirrorBookMark[];
setMarker(line:number,text:string,className:string):CodeMirrorLineHandle;
clarMarker(line:number):void;
setLineClass(line:number,className:string,backgroundClassName:string):CodeMirrorLineHandle;
hideLine(line:number):CodeMirrorLineHandle;
showLine(line:number):CodeMirrorLineHandle;
onDeleteLine(line:number,callBack:Function);
lineInfo(line:number):CodeMirrorLineInfo;
getLineHandler(line:number):CodeMirrorLineHandle;
getViewPort():CodeMirrorViewPort;
addWidget(pos:CodeMirrorPosition,node:Node,scrollIntoView:bool);
matchBrackets():void;
lineCount():number;
getCursor(start?:bool):CodeMirrorPosition;
somethingSelected():bool;
setCursor(pos:CodeMirrorPosition):void;
setSelection(start:CodeMirrorPosition,end:CodeMirrorPosition):void;
getLine(n:number):string;
setLine(n:string,text:string):void;
removeLine(n:number):void;
getRange(from:CodeMirrorPosition,to:CodeMirrorPosition):string;
replaceRange(text:string,from:CodeMirrorPosition,to?:CodeMirrorPosition):void;
posFromIndex(index:number):CodeMirrorPosition;
indexFromPos(pos:CodeMirrorPosition):number;
operation(func:Function):any;
compundChange(func:Function):any;
refresh():void;
getInputField():HTMLTextAreaElement;
getWrapperElement():HTMLElement;
getScrollerElement():HTMLElement;
getGutterElement():HTMLElement;
getStateAfter(line):any;
}
interface CodeMirrorOptions {
value?:string;
mode?:string;
them?:string;
indentUnit?:number;
smartIndend?:number;
tabSize?:number;
indentWithTabs?:bool;
electricsChars?:bool;
autoClearEmptyLines?:bool;
keyMap?:string;
extraKeys?:any;
lineWrapping?:bool;
lineNumbers?:bool;
firstLineNumber?:bool;
lineNumberFormatter?:Function;
gutter?:bool;
fixedGutter?:bool;
readOnly?:bool;
onChange?:CodeMirrorChangeListener;
onCursorActivity?:Function;
onViewportChange?:CodeMirrorViewPortChangeListener;
//**todo finish
}
declare var CodeMirror: {
(element:HTMLElement,options:CodeMirrorOptions):CodeMirrorEditor;
version:string;
defaults:CodeMirrorOptions;
fromTextArea(textArea:HTMLTextAreaElement,options:CodeMirrorOptions):CodeMirrorEditor;
defineMode(name:string,func:CodeMirrorModeDefition);
defineMIME(mime:string,mode:string);
connect(target:EventTarget, event:String,func:Function);
commands:any;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment