Make sure selection-extending commands preserve the associativity of the selection head.
Move the selection to a less surprising place when undoing, moving the selection, redoing, then undoing again.
Fix a bug where copyLineDown would leave the cursor on the wrong line when it was at the start of the line.
The new deleteGroupForwardWin command provides by-group forward deletion using the Windows convention.
Prevent the default behavior of backspace and delete keys, to prevent the browser from doing anything creative when there's nothing to delete.
Implement new addCursorAbove and addCursorBelow commands. Bind them to Mod-Alt-ArrowUp/Down in the default keymap.
Fix an issue where creating a comment for a line that starts an inner language would use the comment style from the outer language.
The new cursorGroupForwardWin and selectGroupForwardWin commands implement Windows-style forward motion by group.
Change toggleBlockCommentByLine to not affect lines with the selection end right at their start.
Bind Shift-Enter to the same command as Enter in the default keymap, so that it doesn't do nothing when on an EditContext-supporting browser.
Add commands for by-string-index cursor motion that ignores text direction.
Fix an issue causing selectParentSyntax to not select syntax that is a direct child of the top node.
Make selectParentSyntax return false when it doesn't change the selection.
Fix a bug in the undo history that would cause it to incorrectly track inverted effects when adding multiple edits to a single history event.
The new toggleTabFocusMode and temporarilySetTabFocusMode commands provide control over the view's tab-focus mode.
The default keymap now binds Ctrl-m (Shift-Alt-m on macOS) to toggleTabFocusMode.
The insertNewlineKeepIndent command inserts a newline along with the same indentation as the line before.
Fix an issue where deleteLine sometimes leaves the cursor on the wrong line.
The new deleteCharBackwardStrict command just deletes a character, without further smart behavior around indentation.
Fix an issue causing cursor motion commands to not dispatch a transaction when the change only affects cursor associativity.
Fix a regression that caused deleteCharBackward to sometimes delete a large chunk of text.
When undoing, store the selection after the undone change with the redo event, so that redoing restores it.
deleteCharBackward will no longer delete variant selector characters as separate characters.
Make it possible for selectParentSyntax to jump out of or into a syntax tree overlay.
Make Cmd-Backspace and Cmd-Delete on macOS delete to the next line wrap point, not the start/end of the line.
The new deleteLineBoundaryForward and deleteLineBoundaryBackward commands delete to the start/end of the line or the next line wrapping point.
Make insertNewlineAndIndent properly count indentation for tabs when copying over the previous line's indentation.
The various sub-word motion commands will now use Intl.Segmenter, when available, to stop at CJK language word boundaries.
Fix a bug in insertNewlineAndIndent that would delete text between brackets if it had no corresponding AST node.
The by-subword motion commands now properly treat dashes, underscores, and similar as subword separators.
Block commenting the selection no longer includes indentation on the first line.
Fix a bug where line commenting got confused when commenting a range that crossed language boundaries.
Keep cursor position stable in cursorPageUp/cursorPageDown when there are panels or other scroll margins active.
Make sure toggleComment doesn't get thrown off by local language nesting, by fetching the language data for the start of the selection line.
The new joinToEvent history configuration option allows you to provide custom logic that determines whether a new transaction is added to an existing history event.
Preserve selection bidi level when extending the selection, to prevent shift-selection from getting stuck in some kinds of bidirectional text.
Fix a bug that caused deletion commands on non-empty ranges to incorrectly return false and do nothing, causing the editor to fall back to native behavior.
Make sure the selection endpoints are moved out of atomic ranges when applying a deletion command to a non-empty selection.
Prevent native behavior on Ctrl/Cmd-ArrowLeft/ArrowRight bindings, so that browsers with odd bidi behavior won't do the wrong thing at start/end of line.
Cmd-ArrowLeft/Right on macOS now moves the cursor in the direction of the arrow even in right-to-left content.
The new cursorLineBoundaryLeft/Right and selectLineBoundaryLeft/Right commands allow directional motion to line boundaries.
Announce to the screen reader when the selection is deleted.
Also bind Ctrl-Shift-z to redo on Linux.
Fix a bug where by-page selection commands sometimes moved one line too far.
There is no longer a separate commentKeymap. Those bindings are now part of defaultKeymap.
Make cursorPageUp and cursorPageDown move by window height when the editor is higher than the window.
Make sure the default behavior of Home/End is prevented, since it could produce unexpected results on macOS.
The exports from @codemirror/comment are now available in this package.
The exports from the @codemirror/history package are now available from this package.
deleteCharBackward now removes extending characters one at a time, rather than deleting the entire glyph at once.
Alt-v is no longer bound in emacsStyleKeymap and macOS's standardKeymap, because macOS doesn't bind it by default and it conflicts with some keyboard layouts.
Don't bind Alt-< and Alt-> on macOS by default, since those interfere with some keyboard layouts. Make cursorPageUp/Down scroll the view to keep the cursor in place
cursorPageUp and cursorPageDown now scroll the view by the amount that the cursor moved.
The standard keymap no longer overrides Shift-Delete, in order to allow the native behavior of that key to happen on platforms that support it.
Adds an insertBlankLine command which creates an empty line below the selection, and binds it to Mod-Enter in the default keymap.
Make commands that affect the editor's content check state.readOnly and return false when that is true.
Make by-line cursor motion commands move the cursor to the start/end of the document when they hit the first/last line.
Fix a bug where deleteCharForward/Backward behaved incorrectly when deleting directly before or after an atomic range.
New commands cursorSubwordForward, cursorSubwordBackward, selectSubwordForward, and selectSubwordBackward which implement motion by camel case subword.
Fix incorrect versions for @lezer dependencies.
Change default binding for backspace to deleteCharBackward, drop deleteCodePointBackward/Forward from the library.
defaultTabBinding was removed.
Drop Alt-d, Alt-f, and Alt-b bindings from emacsStyleKeymap (and thus from the default macOS bindings).
deleteCharBackward and deleteCharForward now take atomic ranges into account.
Attach more granular user event strings to transactions.
The module exports a new binding indentWithTab that binds tab and shift-tab to indentMore and indentLess.
moveLineDown will no longer incorrectly grow the selection.
Line-based commands will no longer include lines where a range selection ends right at the start of the line.
Use Ctrl-l, not Alt-l, to bind selectLine on macOS, to avoid conflicting with special-character-insertion bindings.
Make the macOS Command-ArrowLeft/Right commands behave more like their native versions.
Also bind Shift-Backspace and Shift-Delete in the default keymap (to do the same thing as the Shift-less binding).
Adds a deleteToLineStart command.
Adds bindings for Cmd-Delete and Cmd-Backspace on macOS.
Update dependencies to 0.18.
Use Alt-l for the default selectLine binding, because Mod-l already has an important meaning in the browser.
Make deleteGroupBackward/deleteGroupForward delete groups of whitespace when bigger than a single space.
Don't change lines that have the end of a range selection directly at their start in indentLess, indentMore, and indentSelection.
Fix a bug where deleteToLineEnd would delete the rest of the document when at the end of a line.
Fix an issue where insertNewlineAndIndent behaved strangely with the cursor between brackets that sat on different lines.
The new insertTab command inserts a tab when nothing is selected, and defers to indentMore otherwise.
The package now exports a defaultTabBinding object that provides a recommended binding for tab (if you must bind tab).
The package now also exports a CommonJS module.
First numbered release.