1# Changelog
2
3All notable changes to similar are documented here.
4
5## 1.3.0
6
7* Performance improvements for the LCS algorithm.
8* Small performance improvments by adding an early opt-out for and inline highlighting.
9* Added `IdentifyDistinct` to convert sequences to ints.
10* Small performance improvements for larger text diffs by using `IdentifyDistinct`
11  automatically above a threshold.
12* Added deadlines to all diffing algorithms to bail early.
13* Deprecated slice diffing methods in the individual algorithm modules.
14* Use a default timeout for the inline highlighting feature.
15* Added a compacting step to clean up diffs.  This results in nicer looking diffs and
16  fewer edits.  This is happening automatically for captured diffs and is exposed
17  through the `Capture` type.
18* Fix incorrect ranges in unified diff output.
19
20## 1.2.2
21
22* Added support for Rust 1.41.0 for better compatibility.
23
24## 1.2.1
25
26* Added support for Rust 1.43.0 for better compatibility.
27
28## 1.2.0
29
30* Make the unicode feature optional for inline diffing.
31* Added Hunt–McIlroy LCS algorithm (`lcs`).
32* Changed the implementation of Mayer's diff.  This has slightly changed the
33  behavior but resulted in snigificantly improved performance and more
34  readable code.
35* Added `NoFinishHook` to aid composing of diff hooks.
36
37## 1.1.0
38
39* More generic lifetimes for `iter_changes` and `iter_inline_changes`.
40* Added `iter_all_changes` shortcut as this is commonly useful.
41* Added `iter_slices` to `DiffOp` to quickly get an iterator over the
42  encoded slices rather than individual items like `iter_changes` does.
43* Added the `utils` module with various text diffing utilities.
44* Added `TextDiffRemapper` which helps with working with the original, pre
45  `TextDiff` tokenization slices.
46
47## 1.0.0
48
49* Add `get_diff_ratio`.
50* Add support for byte diffing and change the text interface to abstract
51  over `DiffableStr`.
52* Restructured crate layout greatly.  Text diffing is now on the crate root,
53  some functionality remains in the algorithms.
54* The `Change` type now also works for non text diffs.
55
56## 0.5.0
57
58* Add `DiffOp::apply_to_hook` to apply a captured op to a diff hook.
59* Added missing newline handling to the `Changes` type.
60* Made unified diff support more flexible through the introduction of
61  the `UnifiedDiff` type.
62* Fixed grouped diff operation to return an empty result if the diff
63  does not show any changes.
64* Added inline diff highlighting support.
65* Changed word splitting to split into words and whitespace.
66* Added support for unicode based word splitting (`TextDiff::from_unicode_words`).
67
68## 0.4.0
69
70* Change `get_close_matches` to use Python's quick ratio optimization
71  and order lexicographically when tied.
72
73## 0.3.0
74
75* Added grapheme and character level diffing utilities.
76* `DiffOp::as_tag_tuple` is now taking the argument by reference.
77* Added `TextDiff::ratio`.
78* Added `get_close_matches`.
79
80## 0.2.0
81
82* Fixed a bug in the patience algorithm causing it not not work.
83
84## 0.1.0
85
86* Initial release.
87