prism-react-editor
Version:
Lightweight, extensible code editor component for React apps
61 lines (60 loc) • 2.5 kB
TypeScript
import { PrismEditor } from '../types';
/**
* Hook that will add automatic indentation, closing of brackets,
* quotes and tags along with the following commands:
*
* - Alt+ArrowUp/Down: Move line up/down
* - Shift+Alt+ArrowUp/Down: Copy line up/down
* - Ctrl+ArrowUp/Down (Not on MacOS): Scroll up/down 1 line
* - Ctrl+Enter (Cmd+Enter on MacOS): Insert blank line
* - Ctrl+[ (Cmd+[ on MacOS): Outdent line
* - Ctrl+] (Cmd+] on MacOS): Indent line
* - Shift+Ctrl+K (Shift+Cmd + K on MacOS): Delete line
* - Ctrl+/ (Cmd+/ on MacOS): Toggle comment
* - Shift+Alt+A: Toggle block comment
* - Ctrl+M (Ctrl+Shift+M on MacOS): Toggle Tab capturing
*
* @param selfClosePairs Pairs of self-closing brackets and quotes.
* Must be an array of strings with 2 characters each.
* Defaults to `['""', "''", '``', '()', '[]', '{}']`.
* @param selfCloseRegex Regex controlling whether or not a bracket/quote should
* automatically close based on the character before and after the cursor.
* Defaults to ``/([^$\w'"`]["'`]|.[[({])[.,:;\])}>\s]|.[[({]`/s``.
*/
declare const useDefaultCommands: (editor: PrismEditor, selfClosePairs?: string[], selfCloseRegex?: RegExp) => void;
export interface EditHistory {
/** Clears the history stack. */
clear(): void;
/**
* Sets the active entry relative to the current entry.
*
* @param offset The position you want to move to relative to the current entry.
*
* `EditHistory.go(-1)` would be equivalent to an undo while `EditHistory.go(1)` would
* be equivalent to a redo.
*
* If there's no entry at the specified position, the call does nothing.
*/
go(offset: number): void;
/**
* Returns whether or not there exists a history entry at the specified offset relative
* to the current entry.
*
* This method can be used to determine whether a call to {@link EditHistory.go} with the
* same offset will succeed or do nothing.
*/
has(offset: number): boolean;
}
/**
* Hook that overrides the browser's undo/redo behavior for the editor.
*
* Without this hook, the browser's native undo/redo is used, which can be sufficient
* in some cases.
*
* The extension can be accessed from `editor.extensions.history` after effects have been
* run.
*
* @param historyLimit The maximum size of the history stack. Defaults to 999.
*/
declare const useEditHistory: (editor: PrismEditor, historyLimit?: number) => void;
export { useDefaultCommands, useEditHistory };