Only two weeks after 0.14.0! Things are really starting to feel stable… which I guess is about time.
The main change in this release is that a bunch more things (typing, in-textblock backspacing) are left to the browser, and ProseMirror takes care not to re-render content when it doesn’t have to. Which goes exactly against the original concept of ProseMirror (‘never trust the browser, we’ll do it ourselves’), but more and more issues came up where browser or platform features, such as spell-check, long-press to type character variants on OS, double-space for a period on iOS, were broken because the browser and/or the OS didn’t realize what was going on.
So for relatively uncontroversial functionality (there’s not too much disagreement on what should happen to your document when you type a character), the editor now takes a hands-off approach. This is not without danger, and is likely going to cause some new bugs and issues, but I feel it’s a more promising route than continuing to throw up my hands and say ‘nothing I can do’ for the various broken native editing features.
prosemirror-model 0.15.0 (2016-12-10)
ResolvedPos.atNodeBoundary is deprecated and will be removed in the next release. Use
textOffset > 0 instead.
Parse rules associated with a schema can now specify a
priority to influence the order in which they are applied.
Resolved positions have a new getter
textOffset to find their position within a text node (if any).
prosemirror-transform 0.15.0 (2016-12-10)
Fix bug where pasted/inserted content would sometimes get incorrectly closed at the right side.
prosemirror-state 0.15.0 (2016-12-10)
Selection actions no longer scroll the new selection into view by default (they never were supposed to, but due to a bug they did). Add a
scrollIntoView property to the action to get this behavior.
prosemirror-view 0.15.0 (2016-12-10)
The editor view no longer wraps its editable DOM element in a wrapper element. The
ProseMirror CSS class now applies directly to the editable element. The
ProseMirror-content CSS class is still present for ease of upgrading but will be dropped in the next release.
The editor view no longer draws a drop cursor when dragging content over the editor. The new
prosemirror-dropcursor module implements this as a plugin.
Simple typing and backspacing now gets handled by the browser without ProseMirror redrawing the touched nodes, making spell-checking and various platform-specific input tricks (long-press on OS X, double space on iOS) work in the editor.
Improve tracking of DOM nodes that have been touched by user changes, so that
updateState can reliably fix them.
Changes to the document that happen while dragging editor content no longer break moving of the content.
Adding or removing a mark directly in the DOM (for example with the bold/italic buttons in iOS’ context menu) now produces mark steps, rather than replace steps.
Pressing backspace at the start of a paragraph on Android now allows key handlers for backspace to fire.
Toggling a mark when there is no selection now works better on mobile platforms.
endOfTextblock method on views, which can be used to find out in a bidi- and layout-aware way whether the selection is on the edge of a textblock.
prosemirror-commands 0.15.0 (2016-12-10)
Drops suppport for
move(Back|For)ward, since we are now letting the browser handle those natively.
A new command
exitCode allows a user to exit a code block by creating a new paragraph below it.