Release 0.13.0


I’ve just tagged 0.13.0. I didn’t have time to look into everything I wanted to look into, but I figured regular releases are a good thing, so here you are.

The main work this release has been on copy/paste behavior. This ended up causing a major refactor of the DOM parser and a rewrite of the way replacing a selection is done, which I think both improved the system. Paste behavior is still not perfect, but (assuming my tests aren’t missing any major regressions) it should be quite a lot better.

The other changes are mostly small bug fixes and reintroductions of a few features that were dropped in the 0.10→0.11 transition, but that people did actually really need. Read about them in the…

Release Notes

prosemirror-model 0.13.0 (2016-11-11)

Breaking changes

ResolvedPos.sameDepth is now called ResolvedPos.sharedDepth, and takes a raw, unresolved position as argument.

New features

DOMSerializer's nodes and marks properties are now public.

ContentMatch.findWrapping now takes a third argument, marks. There’s a new method findWrappingFor that accepts a whole node.

Adds Slice.maxOpen static method to create maximally open slices.

DOM parser objects now have a parseSlice method which parses an HTML fragment into a Slice, rather than trying to create a whole document from it.

prosemirror-transform 0.13.0 (2016-11-11)

Bug fixes

Fix issue where Transform.replace would, in specific circumstances, unneccessarily drop content.

New features

The new Transform method replaceRange, replaceRangeWith, and deleteRange provide a way to replace and delete content in a ‘do what I mean’ way, automatically expanding the replaced region over empty parent nodes and including the parent nodes in the inserted content when appropriate.

prosemirror-state 0.13.0 (2016-11-11)

Breaking changes

EditorTransform.replaceSelection now takes a slice, no longer a node. The new replaceSelectionWith method should be used to replace the selection with a node. Until the next release, calling it the old way will still work and emit a warning.

Bug fixes

The documentation for applyAction now actually reflects the arguments this method is given.

New features

A state field’s applyAction method is now passed the previous state as 4th argument, so that it has access to the new doc and selection.

EditorTransform.replaceSelection now accepts a slice (or, as before, as a node), and uses a revised algorithm, relying on the defining node flag.

The TextSelection and NodeSelection classes now have a static create convenience method for creating selections from unresolved positions.

Allow transform actions to be extended during dispatch using extendTransformAction. Introduce sealed flag to indicate when this is not safe.

A new utility function NodeSelection.isSelectable can be used to test whether a node can be the target of a node selection.

prosemirror-view 0.13.0 (2016-11-11)

Breaking changes

Selecting nodes on OS X is now done with cmd-leftclick rather than ctrl-leftclick.

Bug fixes

Pasting text into a code block will now insert the raw text.

Widget decorations at the start or end of a textblock no longer block horizontal cursor motion through them.

Widget nodes at the end of textblocks are now reliably drawn during display updates.

New features now takes an options object which allows you to specify an onRemove callback to be notified when remapping drops decorations.

The transformPastedHTML and transformPastedText props were (re-)added, and can be used to clean up pasted content.

prosemirror-commands 0.13.0 (2016-11-11)

New features

The autoJoin function allows you to wrap command functions so that when the command makes nodes of a certain type occur next to each other, they are automatically joined.

1 Like