diff --git a/packages/slate/src/commands/at-range.js b/packages/slate/src/commands/at-range.js index e26f8c032..1a09f74e3 100644 --- a/packages/slate/src/commands/at-range.js +++ b/packages/slate/src/commands/at-range.js @@ -367,7 +367,7 @@ Commands.deleteBackwardAtRange = (editor, range, n = 1) => { // If the focus offset is farther than the number of characters to delete, // just remove the characters backwards inside the current node. - if (n < focus.offset) { + if (n <= focus.offset) { range = range.moveFocusBackward(n) editor.deleteAtRange(range) return diff --git a/packages/slate/test/commands/at-range/delete-backward-at-range/from-offset.js b/packages/slate/test/commands/at-range/delete-backward-at-range/from-offset.js new file mode 100644 index 000000000..c6a3704e4 --- /dev/null +++ b/packages/slate/test/commands/at-range/delete-backward-at-range/from-offset.js @@ -0,0 +1,38 @@ +/** @jsx h */ + +import { Point, Range } from 'slate' + +import h from '../../../helpers/h' + +export default function(editor) { + const { key } = editor.value.document.getFirstText() + const range = new Range({ + anchor: new Point({ key, offset: 2, path: [key] }), + focus: new Point({ key, offset: 2, path: [key] }), + }) + editor.deleteBackwardAtRange(range, 2) +} + +export const input = ( + + + + + Sample Text + + + + +) + +export const output = ( + + + + + mple Text + + + + +)