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.