Uses the similar crate to support new diff algorithms:
- Patience (new default)
- Levenshtein (old default)
- Myers
- LCS (Longest Common Subsequence)
Options in "Diff Options" -> "Algorithm..."
Uses file modification timestamp polling for project config and objects to avoid unneeded complexity from the filesystem notification watcher.
Allows disabling `build_base` as well for projects using an external build system.
- Support `completed` field for objects in project config. In object tree, displays red for incomplete, green for complete.
- Add support for one-sided diffs. A project can include objects without an associated source file for viewing.
- Add versioning to AppConfig, supporting upgrades without losing user configuration.
- Allow config to specify object "target_path" and "base_path" explicitly, rather than relying on relative path from the "target_dir" and "base_dir". Useful for more complex directory layouts.
- Fix watch_patterns in project config not using default.
- Fix "Rebuild on changes" not defaulting to true.
- Keep watching project config updates even when "Rebuild on changes" is false.
- Disable some configuration options when loaded from project config file.
* Rewrite Affix::find to be much simpler
* Rename Affix::find parameters to not be string
* Remove unused `LevMatchingBlock` struct
* Make `Affix` type simpler
* Use let-else in App::post_rendering
* Use let-else in diff::reloc_eq
* Use let-else in diff::diff_objs
* Use let-else in views::data_diff::data_diff_ui
* Use let-else in views::function_diff::function_diff_ui
* Use let-else in views::function_diff::asm_row_ui
* Use let-else in views::jobs::jobs_ui
* Update rust-version in Cargo.toml