UNPKG

prism-react-editor

Version:

Lightweight, extensible code editor component for React apps

61 lines (60 loc) 2.5 kB
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 };