Version 5.24.0 is out, with quite a long list of fixes and changes.
If you’re using the SASS mode without using a module system, you’ll have to manually make sure the CSS mode is loaded, since that is now a dependency of the SASS mode. That’s the only breaking change.
The main new feature in this release is that position objects for a given line/char position can now distinguish between the position to the right of the character before that position, and the position the left of the character after it, with the optional
sticky property. This is used to improve cursor behavior around line wraps and in bidirectional text. Thanks go to @adrianheine for doing all the scary bidirectional work that was involved in that, and to Mozilla for sponsoring that work.
A cursor directly before a line-wrapping break is now drawn before or after the line break depending on which direction you arrived from.
Visual cursor motion in line-wrapped right-to-left text should be much more correct.
Fix bug in handling of read-only marked text.
shell mode: Properly tokenize nested parentheses.
python mode: Support underscores in number literals.
sass mode: Uses the full list of CSS properties and keywords from the CSS mode, rather than defining its own incomplete subset.
css mode: Expose
lineComment property for LESS and SCSS dialects. Recognize vendor prefixes on pseudo-elements.
julia mode: Properly indent
markdown mode: Properly recognize the end of fenced code blocks when inside other markup.
scala mode: Improve handling of operators containing
xml mode: Allow dashes in HTML tag names.
indent-fold addon: Ignore comment lines.
Positions now support a
sticky property which determines whether they should be associated with the character before (value
"before") or after (value
vim bindings: Make it possible to remove built-in bindings through the API.
comment addon: Support a per-mode
useInnerComments option to optionally suppress descending to the inner modes to get comment strings.