From 4ce80cf117b07d91378b60b0af17716ccae0e44c Mon Sep 17 00:00:00 2001 From: Alberto Nicoletti Date: Sun, 5 Feb 2017 18:32:13 +0100 Subject: [PATCH] Added Typescript's definitions. Version number incremented. --- package.json | 3 +- types.d.ts | 165 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 167 insertions(+), 1 deletion(-) create mode 100644 types.d.ts diff --git a/package.json b/package.json index 1aea3497..ea03fa7d 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,9 @@ { "name": "react-ace", - "version": "4.1.1", + "version": "4.1.2", "description": "A react component for Ace Editor", "main": "lib/ace.js", + "types": "types.d.ts", "scripts": { "clean": "rimraf lib dist", "lint": "node_modules/.bin/eslint src/ace.jsx", diff --git a/types.d.ts b/types.d.ts new file mode 100644 index 00000000..185f03de --- /dev/null +++ b/types.d.ts @@ -0,0 +1,165 @@ +// Type definitions for react-ace 4.1.2 +// Project: https://github.com/securingsincity/react-ace +// Definitions by: Alberto Nicoletti + +import { Component } from 'react' + +export interface Annotation { + row: number + column: number + type: string + text: string +} + +export interface Marker { + startRow: number + startCol: number + endRow: number + endCol: number + className: string + type: string +} + +export interface CommandBindKey { + win: string + mac: string +} + +export interface Command { + name: string + bindKey: CommandBindKey + exec() +} + +/** + * See https://github.com/ajaxorg/ace/wiki/Configuring-Ace + */ +export interface AceOptions { + selectionStyle?: "line" | "text" + highlightActiveLine?: boolean + highlightSelectedWord?: boolean + readOnly?: boolean + cursorStyle?: "ace"|"slim"|"smooth"|"wide" + mergeUndoDeltas?: false | true | "always" + behavioursEnabled?: boolean + wrapBehavioursEnabled?: boolean + /** this is needed if editor is inside scrollable page */ + autoScrollEditorIntoView?: boolean + hScrollBarAlwaysVisible?: boolean + vScrollBarAlwaysVisible?: boolean + highlightGutterLine?: boolean + animatedScroll?: boolean + showInvisibles?: boolean + showPrintMargin?: boolean + printMarginColumn?: boolean + printMargin?: boolean + fadeFoldWidgets?: boolean + showFoldWidgets?: boolean + showLineNumbers?: boolean + showGutter?: boolean + displayIndentGuides?: boolean + /** number or css font-size string */ + fontSize?: number | string + /** css */ + fontFamily?: string + maxLines?: number + minLines?: number + scrollPastEnd?: boolean + fixedWidthGutter?: boolean + /** path to a theme e.g "ace/theme/textmate" */ + theme?: string + scrollSpeed?: number + dragDelay?: number + dragEnabled?: boolean + focusTimout?: number + tooltipFollowsMouse?: boolean + firstLineNumber?: number + overwrite?: boolean + newLineMode?: boolean + useWorker?: boolean + useSoftTabs?: boolean + tabSize?: number + wrap?: boolean + foldStyle?: boolean + /** path to a mode e.g "ace/mode/text" */ + mode?: string + /** on by default */ + enableMultiselect?: boolean + enableEmmet?: boolean + enableBasicAutocompletion?: boolean + enableLiveAutocompletion?: boolean + enableSnippets?: boolean + spellcheck?: boolean + useElasticTabstops?: boolean +} + +export interface EditorProps { + $blockScrolling?: number + $blockSelectEnabled?: boolean + $enableBlockSelect?: boolean + $enableMultiselect?: boolean + $highlightPending?: boolean + $highlightTagPending?: boolean + $multiselectOnSessionChange?() + $onAddRange?() + $onChangeAnnotation?() + $onChangeBackMarker?() + $onChangeBreakpoint?() + $onChangeFold?() + $onChangeFrontMarker?() + $onChangeMode?() + $onChangeTabSize?() + $onChangeWrapLimit?() + $onChangeWrapMode?() + $onCursorChange?() + $onDocumentChange?() + $onMultiSelect?() + $onRemoveRange?() + $onScrollLeftChange?() + $onScrollTopChange?() + $onSelectionChange?() + $onSingleSelect?() + $onTokenizerUpdate?() +} + +export interface AceEditorProps { + name?: string + /** For available modes see https://github.com/thlorenz/brace/tree/master/mode */ + mode?: string + /** For available themes see https://github.com/thlorenz/brace/tree/master/theme */ + theme?: string + height?: string + width?: string + className?: string + fontSize?: number + showGutter?: boolean + showPrintMargin?: boolean + highlightActiveLine?: boolean + focus?: boolean + cursorStart?: number + wrapEnabled?: boolean + readOnly?: boolean + minLines?: number + maxLines?: number + enableBasicAutocompletion?: boolean + enableLiveAutocompletion?: boolean + tabSize?: number + value?: string + defaultValue?: string + onLoad?() + onBeforeLoad?() + onChange?(value: string) + onCopy?(value: string) + onPaste?(value: string) + onFocus?() + onBlur?() + onScroll?() + editorProps?: EditorProps + setOptions?: AceOptions + keyboardHandler?: string + commands?: Array + annotations?: Array + markers?: Array +} + +export default class AceEditor extends Component {}