diff --git a/packages/slate-hotkeys/src/index.js b/packages/slate-hotkeys/src/index.js index b11573e99..752225de9 100644 --- a/packages/slate-hotkeys/src/index.js +++ b/packages/slate-hotkeys/src/index.js @@ -10,8 +10,10 @@ import { IS_IOS, IS_MAC } from 'slate-dev-environment' const HOTKEYS = { bold: 'mod+b', compose: ['down', 'left', 'right', 'up', 'backspace', 'enter'], - moveBackward: 'mod?+ctrl?+alt?+left', - moveForward: 'mod?+ctrl?+alt?+right', + moveBackward: 'left', + moveForward: 'right', + moveWordBackward: 'ctrl+left', + moveWordForward: 'ctrl+right', deleteBackward: 'shift?+backspace', deleteForward: 'shift?+delete', extendBackward: 'shift+left', @@ -24,6 +26,8 @@ const HOTKEYS = { const APPLE_HOTKEYS = { moveLineBackward: 'opt+up', moveLineForward: 'opt+down', + moveWordBackward: 'opt+left', + moveWordForward: 'opt+right', deleteBackward: ['ctrl+backspace', 'ctrl+h'], deleteForward: ['ctrl+delete', 'ctrl+d'], deleteLineBackward: 'cmd+shift?+backspace', diff --git a/packages/slate-react/src/plugins/after.js b/packages/slate-react/src/plugins/after.js index 64f8ff423..fe9bc1e66 100644 --- a/packages/slate-react/src/plugins/after.js +++ b/packages/slate-react/src/plugins/after.js @@ -530,25 +530,33 @@ function AfterPlugin(options = {}) { // an inline is selected, we need to handle these hotkeys manually because // browsers won't know what to do. if (Hotkeys.isMoveBackward(event)) { - const { previousText, startText } = value - const isPreviousInVoid = - previousText && document.hasVoidParent(previousText.key, editor) + event.preventDefault() - if (hasVoidParent || isPreviousInVoid || startText.text == '') { - event.preventDefault() - return change.moveBackward() + if (!selection.isCollapsed) { + return change.moveToStart() } + + return change.moveBackward() } if (Hotkeys.isMoveForward(event)) { - const { nextText, startText } = value - const isNextInVoid = - nextText && document.hasVoidParent(nextText.key, editor) + event.preventDefault() - if (hasVoidParent || isNextInVoid || startText.text == '') { - event.preventDefault() - return change.moveForward() + if (!selection.isCollapsed) { + return change.moveToEnd() } + + return change.moveForward() + } + + if (Hotkeys.isMoveWordBackward(event)) { + event.preventDefault() + return change.moveWordBackward() + } + + if (Hotkeys.isMoveWordForward(event)) { + event.preventDefault() + return change.moveWordForward() } if (Hotkeys.isExtendBackward(event)) { diff --git a/packages/slate/src/commands/on-selection.js b/packages/slate/src/commands/on-selection.js index c92e586d6..13336b006 100644 --- a/packages/slate/src/commands/on-selection.js +++ b/packages/slate/src/commands/on-selection.js @@ -2,6 +2,7 @@ import { is } from 'immutable' import pick from 'lodash/pick' import Selection from '../models/selection' +import TextUtils from '../utils/text-utils' const Commands = {} @@ -26,10 +27,18 @@ Commands.moveAnchorBackward = (change, ...args) => { change.call(pointBackward, 'anchor', ...args) } +Commands.moveAnchorWordBackward = (change, ...args) => { + change.call(pointWordBackward, 'anchor', ...args) +} + Commands.moveAnchorForward = (change, ...args) => { change.call(pointForward, 'anchor', ...args) } +Commands.moveAnchorWordForward = (change, ...args) => { + change.call(pointWordForward, 'anchor', ...args) +} + Commands.moveAnchorTo = (change, ...args) => { change.call(proxy, 'moveAnchorTo', ...args) } @@ -126,14 +135,26 @@ Commands.moveBackward = (change, ...args) => { change.moveAnchorBackward(...args).moveFocusBackward(...args) } +Commands.moveWordBackward = (change, ...args) => { + change.moveFocusWordBackward(...args).moveToFocus() +} + Commands.moveEndBackward = (change, ...args) => { change.call(pointBackward, 'end', ...args) } +Commands.moveEndWordBackward = (change, ...args) => { + change.call(pointWordBackward, 'end', ...args) +} + Commands.moveEndForward = (change, ...args) => { change.call(pointForward, 'end', ...args) } +Commands.moveEndWordForward = (change, ...args) => { + change.call(pointWordForward, 'end', ...args) +} + Commands.moveEndTo = (change, ...args) => { change.call(proxy, 'moveEndTo', ...args) } @@ -230,10 +251,18 @@ Commands.moveFocusBackward = (change, ...args) => { change.call(pointBackward, 'focus', ...args) } +Commands.moveFocusWordBackward = (change, ...args) => { + change.call(pointWordBackward, 'focus', ...args) +} + Commands.moveFocusForward = (change, ...args) => { change.call(pointForward, 'focus', ...args) } +Commands.moveFocusWordForward = (change, ...args) => { + change.call(pointWordForward, 'focus', ...args) +} + Commands.moveFocusTo = (change, ...args) => { change.call(proxy, 'moveFocusTo', ...args) } @@ -330,14 +359,26 @@ Commands.moveForward = (change, ...args) => { change.moveAnchorForward(...args).moveFocusForward(...args) } +Commands.moveWordForward = (change, ...args) => { + change.moveFocusWordForward(...args).moveToFocus(...args) +} + Commands.moveStartBackward = (change, ...args) => { change.call(pointBackward, 'start', ...args) } +Commands.moveStartWordBackward = (change, ...args) => { + change.call(pointWordBackward, 'start', ...args) +} + Commands.moveStartForward = (change, ...args) => { change.call(pointForward, 'start', ...args) } +Commands.moveStartWordForward = (change, ...args) => { + change.call(pointWordForward, 'start', ...args) +} + Commands.moveStartTo = (change, ...args) => { change.call(proxy, 'moveStartTo', ...args) } @@ -718,4 +759,28 @@ function pointForward(change, point, n = 1) { } } +function pointWordBackward(change, pointName) { + const { value } = change + const { document, selection } = value + const point = selection[pointName] + const block = document.getClosestBlock(point.key) + const offset = block.getOffset(point.key) + const o = offset + point.offset + const { text } = block + const n = TextUtils.getWordOffsetBackward(text, o) + change.call(pointBackward, pointName, n > 0 ? n : 1) +} + +function pointWordForward(change, pointName) { + const { value } = change + const { document, selection } = value + const point = selection[pointName] + const block = document.getClosestBlock(point.key) + const offset = block.getOffset(point.key) + const o = offset + point.offset + const { text } = block + const n = TextUtils.getWordOffsetForward(text, o) + change.call(pointForward, pointName, n > 0 ? n : 1) +} + export default Commands diff --git a/packages/slate/test/commands/on-selection/move-anchor-backward/default.js b/packages/slate/test/commands/on-selection/move-anchor-backward/default.js new file mode 100644 index 000000000..72301aa65 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-anchor-backward/default.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveAnchorBackward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-anchor-backward/from-collapsed.js b/packages/slate/test/commands/on-selection/move-anchor-backward/from-collapsed.js new file mode 100644 index 000000000..36d2638d1 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-anchor-backward/from-collapsed.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveAnchorBackward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-anchor-backward/out-of-reverse.js b/packages/slate/test/commands/on-selection/move-anchor-backward/out-of-reverse.js new file mode 100644 index 000000000..6c0aca315 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-anchor-backward/out-of-reverse.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveAnchorBackward(8) +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-anchor-backward/param.js b/packages/slate/test/commands/on-selection/move-anchor-backward/param.js new file mode 100644 index 000000000..efb6eeefa --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-anchor-backward/param.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveAnchorBackward(3) +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-anchor-forward/default.js b/packages/slate/test/commands/on-selection/move-anchor-forward/default.js new file mode 100644 index 000000000..238d85153 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-anchor-forward/default.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveAnchorForward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-anchor-forward/from-collapsed.js b/packages/slate/test/commands/on-selection/move-anchor-forward/from-collapsed.js new file mode 100644 index 000000000..2a905b8a5 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-anchor-forward/from-collapsed.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveAnchorForward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-anchor-forward/into-reverse.js b/packages/slate/test/commands/on-selection/move-anchor-forward/into-reverse.js new file mode 100644 index 000000000..b17088d95 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-anchor-forward/into-reverse.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveAnchorForward(8) +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-anchor-forward/param.js b/packages/slate/test/commands/on-selection/move-anchor-forward/param.js new file mode 100644 index 000000000..78ca98dd8 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-anchor-forward/param.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveAnchorForward(3) +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-backward/default.js b/packages/slate/test/commands/on-selection/move-backward/default.js new file mode 100644 index 000000000..e8a18e6e2 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-backward/default.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveBackward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-backward/expanded.js b/packages/slate/test/commands/on-selection/move-backward/expanded.js new file mode 100644 index 000000000..24a76f4d1 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-backward/expanded.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveBackward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-backward/param.js b/packages/slate/test/commands/on-selection/move-backward/param.js new file mode 100644 index 000000000..5300f5fff --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-backward/param.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveBackward(6) +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-backward/reversed.js b/packages/slate/test/commands/on-selection/move-backward/reversed.js new file mode 100644 index 000000000..a1488d56c --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-backward/reversed.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveBackward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-end-backward/default.js b/packages/slate/test/commands/on-selection/move-end-backward/default.js new file mode 100644 index 000000000..d07b1d982 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-end-backward/default.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveEndBackward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-end-backward/from-collapsed.js b/packages/slate/test/commands/on-selection/move-end-backward/from-collapsed.js new file mode 100644 index 000000000..60833f6c5 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-end-backward/from-collapsed.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveEndBackward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-end-backward/into-reverse.js b/packages/slate/test/commands/on-selection/move-end-backward/into-reverse.js new file mode 100644 index 000000000..d6942db78 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-end-backward/into-reverse.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveEndBackward(6) +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-end-backward/out-of-reverse.js b/packages/slate/test/commands/on-selection/move-end-backward/out-of-reverse.js new file mode 100644 index 000000000..63dc248a2 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-end-backward/out-of-reverse.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveEndBackward(7) +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-end-backward/param.js b/packages/slate/test/commands/on-selection/move-end-backward/param.js new file mode 100644 index 000000000..6105a6293 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-end-backward/param.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveEndBackward(3) +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-end-backward/reversed.js b/packages/slate/test/commands/on-selection/move-end-backward/reversed.js new file mode 100644 index 000000000..ad96af0f5 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-end-backward/reversed.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveEndBackward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-end-forward/default.js b/packages/slate/test/commands/on-selection/move-end-forward/default.js new file mode 100644 index 000000000..603514047 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-end-forward/default.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveEndForward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-end-forward/from-collapsed.js b/packages/slate/test/commands/on-selection/move-end-forward/from-collapsed.js new file mode 100644 index 000000000..e1138a4f7 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-end-forward/from-collapsed.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveEndForward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-end-forward/param.js b/packages/slate/test/commands/on-selection/move-end-forward/param.js new file mode 100644 index 000000000..57ea918d2 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-end-forward/param.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveEndForward(3) +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-end-forward/reversed.js b/packages/slate/test/commands/on-selection/move-end-forward/reversed.js new file mode 100644 index 000000000..68b74ad6c --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-end-forward/reversed.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveEndForward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-focus-backward/default.js b/packages/slate/test/commands/on-selection/move-focus-backward/default.js new file mode 100644 index 000000000..e87b12d25 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-focus-backward/default.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveFocusBackward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-focus-backward/from-collapsed.js b/packages/slate/test/commands/on-selection/move-focus-backward/from-collapsed.js new file mode 100644 index 000000000..1ff052be3 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-focus-backward/from-collapsed.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveFocusBackward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-focus-backward/into-reverse.js b/packages/slate/test/commands/on-selection/move-focus-backward/into-reverse.js new file mode 100644 index 000000000..fcfc2c1a8 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-focus-backward/into-reverse.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveFocusBackward(10) +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-focus-backward/param.js b/packages/slate/test/commands/on-selection/move-focus-backward/param.js new file mode 100644 index 000000000..57f37ab64 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-focus-backward/param.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveFocusBackward(6) +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-focus-forward/default.js b/packages/slate/test/commands/on-selection/move-focus-forward/default.js new file mode 100644 index 000000000..9174f6f20 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-focus-forward/default.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveFocusForward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-focus-forward/from-collapsed.js b/packages/slate/test/commands/on-selection/move-focus-forward/from-collapsed.js new file mode 100644 index 000000000..51e555784 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-focus-forward/from-collapsed.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveFocusForward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-focus-forward/out-of-reverse.js b/packages/slate/test/commands/on-selection/move-focus-forward/out-of-reverse.js new file mode 100644 index 000000000..487fda569 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-focus-forward/out-of-reverse.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveFocusForward(7) +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-focus-forward/param.js b/packages/slate/test/commands/on-selection/move-focus-forward/param.js new file mode 100644 index 000000000..413dcea1a --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-focus-forward/param.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveFocusForward(4) +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-forward/default.js b/packages/slate/test/commands/on-selection/move-forward/default.js new file mode 100644 index 000000000..857b1e478 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-forward/default.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveForward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-forward/expanded.js b/packages/slate/test/commands/on-selection/move-forward/expanded.js new file mode 100644 index 000000000..9f760af00 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-forward/expanded.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveForward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-forward/param.js b/packages/slate/test/commands/on-selection/move-forward/param.js new file mode 100644 index 000000000..73dd38d98 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-forward/param.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveForward(6) +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-forward/reversed.js b/packages/slate/test/commands/on-selection/move-forward/reversed.js new file mode 100644 index 000000000..b00f6cd29 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-forward/reversed.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveForward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-start-backward/default.js b/packages/slate/test/commands/on-selection/move-start-backward/default.js new file mode 100644 index 000000000..20a44992d --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-start-backward/default.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveStartBackward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-start-backward/from-collapsed.js b/packages/slate/test/commands/on-selection/move-start-backward/from-collapsed.js new file mode 100644 index 000000000..a94dcaeeb --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-start-backward/from-collapsed.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveStartBackward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-start-backward/param.js b/packages/slate/test/commands/on-selection/move-start-backward/param.js new file mode 100644 index 000000000..bdaf7833c --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-start-backward/param.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveStartBackward(3) +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-start-backward/reversed.js b/packages/slate/test/commands/on-selection/move-start-backward/reversed.js new file mode 100644 index 000000000..03287292f --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-start-backward/reversed.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveStartBackward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-start-forward/default.js b/packages/slate/test/commands/on-selection/move-start-forward/default.js new file mode 100644 index 000000000..9dc1c57ff --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-start-forward/default.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveStartForward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-start-forward/from-collapsed.js b/packages/slate/test/commands/on-selection/move-start-forward/from-collapsed.js new file mode 100644 index 000000000..797e444ce --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-start-forward/from-collapsed.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveStartForward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-start-forward/into-reverse.js b/packages/slate/test/commands/on-selection/move-start-forward/into-reverse.js new file mode 100644 index 000000000..649321b9d --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-start-forward/into-reverse.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveStartForward(8) +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-start-forward/out-of-reverse.js b/packages/slate/test/commands/on-selection/move-start-forward/out-of-reverse.js new file mode 100644 index 000000000..b70fa04e6 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-start-forward/out-of-reverse.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveStartForward(7) +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-start-forward/param.js b/packages/slate/test/commands/on-selection/move-start-forward/param.js new file mode 100644 index 000000000..b8d78d86d --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-start-forward/param.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveStartForward(3) +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-start-forward/reversed.js b/packages/slate/test/commands/on-selection/move-start-forward/reversed.js new file mode 100644 index 000000000..7f6691bb7 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-start-forward/reversed.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveStartForward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-word-backward/collapsed.js b/packages/slate/test/commands/on-selection/move-word-backward/collapsed.js new file mode 100644 index 000000000..051397248 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-word-backward/collapsed.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveWordBackward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-word-backward/expanded.js b/packages/slate/test/commands/on-selection/move-word-backward/expanded.js new file mode 100644 index 000000000..4e2064415 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-word-backward/expanded.js @@ -0,0 +1,28 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveWordBackward() +} + +export const input = ( + + + + one two three four five six + + + +) + +// Should move to next word after focus and collapse +export const output = ( + + + + one two three four five six + + + +) diff --git a/packages/slate/test/commands/on-selection/move-word-backward/reversed.js b/packages/slate/test/commands/on-selection/move-word-backward/reversed.js new file mode 100644 index 000000000..4b97448dc --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-word-backward/reversed.js @@ -0,0 +1,28 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveWordBackward() +} + +export const input = ( + + + + one two three four five six + + + +) + +// Should move to next word after focus and collapse +export const output = ( + + + + one two three four five six + + + +) diff --git a/packages/slate/test/commands/on-selection/move-word-forward/collapsed.js b/packages/slate/test/commands/on-selection/move-word-forward/collapsed.js new file mode 100644 index 000000000..80ea11801 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-word-forward/collapsed.js @@ -0,0 +1,27 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveWordForward() +} + +export const input = ( + + + + one two three + + + +) + +export const output = ( + + + + one two three + + + +) diff --git a/packages/slate/test/commands/on-selection/move-word-forward/expanded.js b/packages/slate/test/commands/on-selection/move-word-forward/expanded.js new file mode 100644 index 000000000..486c7a09e --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-word-forward/expanded.js @@ -0,0 +1,28 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveWordForward() +} + +export const input = ( + + + + one two three four five six + + + +) + +// Should move to next word after focus and collapse +export const output = ( + + + + one two three four five six + + + +) diff --git a/packages/slate/test/commands/on-selection/move-word-forward/reversed.js b/packages/slate/test/commands/on-selection/move-word-forward/reversed.js new file mode 100644 index 000000000..c5f1bdc85 --- /dev/null +++ b/packages/slate/test/commands/on-selection/move-word-forward/reversed.js @@ -0,0 +1,28 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(change) { + change.moveWordForward() +} + +export const input = ( + + + + one two three four five six + + + +) + +// Should move to next word after focus and collapse +export const output = ( + + + + one two three four five six + + + +)