UNPKG

slate-edit-code

Version:

A Slate plugin to handle keyboard events in code blocks.

31 lines (23 loc) 766 B
'use strict'; var getIndent = require('./getIndent'); var indentLines = require('./transforms/indentLines'); /** * User pressed Tab in an editor: * Insert a tab after detecting it from code block content. */ function onTab(event, data, state) { event.preventDefault(); event.stopPropagation(); var startBlock = state.startBlock; var isCollapsed = state.isCollapsed; var transform = state.transform(); var innerText = startBlock.text; var indent = getIndent(innerText); // Selection is collapsed, we just insert a new tab if (isCollapsed) { return transform.insertText(indent).focus().apply(); } // We indent all selected lines return indentLines(transform, indent).apply(); } module.exports = onTab;