Skip to content

Latest commit

 

History

History
119 lines (82 loc) · 3.71 KB

CHANGELOG.md

File metadata and controls

119 lines (82 loc) · 3.71 KB

Changelog

All notable changes to similar are documented here.

2.5.0

  • Added support for TextDiff::iter_inline_changes_deadline. #61

2.4.0

  • Fixed a bug where the LCS diff algorithm didn't always call D::finish. (#58)
  • Fixed a bug in LCS that caused a panic if the common prefix and the common suffix overlapped. (#59)

2.3.0

  • Added support for Change::value_ref and Change::value_mut.

2.2.1

  • Fixed a panic in LCS diffs on matching input. (#43)

2.2.0

  • Fixed a panic in text diff generation. (#37)

2.1.0

  • Removed deprecated alternative slice diffing functions.
  • Added serde feature to allow serialization with serde.

2.0.0

  • Change the Change type and associated methods to work on any T: Clone instead of &T. This makes the iter_changes method also work on slices of integers or other values.

1.3.0

  • Performance improvements for the LCS algorithm.
  • Small performance improvements by adding an early opt-out for and inline highlighting.
  • Added IdentifyDistinct to convert sequences to ints.
  • Small performance improvements for larger text diffs by using IdentifyDistinct automatically above a threshold.
  • Added deadlines to all diffing algorithms to bail early.
  • Deprecated slice diffing methods in the individual algorithm modules.
  • Use a default timeout for the inline highlighting feature.
  • Added a compacting step to clean up diffs. This results in nicer looking diffs and fewer edits. This is happening automatically for captured diffs and is exposed through the Capture type.
  • Fix incorrect ranges in unified diff output.

1.2.2

  • Added support for Rust 1.41.0 for better compatibility.

1.2.1

  • Added support for Rust 1.43.0 for better compatibility.

1.2.0

  • Make the unicode feature optional for inline diffing.
  • Added Hunt–McIlroy LCS algorithm (lcs).
  • Changed the implementation of Mayer's diff. This has slightly changed the behavior but resulted in significantly improved performance and more readable code.
  • Added NoFinishHook to aid composing of diff hooks.

1.1.0

  • More generic lifetimes for iter_changes and iter_inline_changes.
  • Added iter_all_changes shortcut as this is commonly useful.
  • Added iter_slices to DiffOp to quickly get an iterator over the encoded slices rather than individual items like iter_changes does.
  • Added the utils module with various text diffing utilities.
  • Added TextDiffRemapper which helps with working with the original, pre TextDiff tokenization slices.

1.0.0

  • Add get_diff_ratio.
  • Add support for byte diffing and change the text interface to abstract over DiffableStr.
  • Restructured crate layout greatly. Text diffing is now on the crate root, some functionality remains in the algorithms.
  • The Change type now also works for non text diffs.

0.5.0

  • Add DiffOp::apply_to_hook to apply a captured op to a diff hook.
  • Added missing newline handling to the Changes type.
  • Made unified diff support more flexible through the introduction of the UnifiedDiff type.
  • Fixed grouped diff operation to return an empty result if the diff does not show any changes.
  • Added inline diff highlighting support.
  • Changed word splitting to split into words and whitespace.
  • Added support for unicode based word splitting (TextDiff::from_unicode_words).

0.4.0

  • Change get_close_matches to use Python's quick ratio optimization and order lexicographically when tied.

0.3.0

  • Added grapheme and character level diffing utilities.
  • DiffOp::as_tag_tuple is now taking the argument by reference.
  • Added TextDiff::ratio.
  • Added get_close_matches.

0.2.0

  • Fixed a bug in the patience algorithm causing it not not work.

0.1.0

  • Initial release.