All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
1.4.0 - 2018-06-09
- Introduced experimental support for disabling unicode support through
:text_delta.support_unicode
config. This is useful, because disabling grapheme handling drastically speeds up all string operations (used heavily). If you implementation does not need support of unicode, using this config can greatly improve performance of the library.
- Small performance optimisations by avoiding unnecessary
String.length
calls
1.3.0 - 2017-12-29
&TextDelta.lines/1
and&TextDelta.lines!/1
&TextDelta.diff/2
and&TextDelta.diff!/2
1.2.0 - 2017-05-29
&TextDelta.apply/2
and&TextDelta.apply!/2
- Moved repository under
deltadoc
organisation. - Text state is now represented with
TextDelta.state
type rather thanTextDelta.document
throughout the codebase.TextDelta.document
is still there in form of an alias forTextDelta.state
.
1.1.0 - 2017-05-02
- Property-based tests for composition, transformation and compaction
- Insert duplication bug during delta compaction
- Delete/Delete misbehaviour bug during composition
TextDelta.Delta
is now justTextDelta
TextDelta.Delta.*
modules moved intoTextDelta.*
TextDelta
now generates and operates on%TextDelta{}
structTextDelta.Delta
is still there and works like before in form of a BC layer, so your existing code would still work while you upgrade. To be removed in 2.x- Slightly improved documentation across modules
1.0.2 - 2017-03-29
- Bug when composition of delete with larger retain resulted in broken delta
- Config
1.0.1 - 2017-03-23
- Test cases for string-keyed maps as attributes
- More context and information to Readme
- Changelog
- Improved documentation across modules
- Cleaned up code to follow Elixir Style Guide
1.0.0 - 2017-03-18
- Delta construction and manipulation logic
- Attributes support in
insert
andretain
- Delta composition and transformation with attributes supported