refactor: remove difference dependency
This commit is contained in:
parent
c440f2a7c6
commit
fc146ad510
4 changed files with 29 additions and 22 deletions
14
Cargo.lock
generated
14
Cargo.lock
generated
|
|
@ -432,12 +432,6 @@ version = "0.1.13"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
|
||||
|
||||
[[package]]
|
||||
name = "difference"
|
||||
version = "2.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198"
|
||||
|
||||
[[package]]
|
||||
name = "dirs"
|
||||
version = "5.0.1"
|
||||
|
|
@ -1198,6 +1192,12 @@ version = "1.3.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
|
||||
|
||||
[[package]]
|
||||
name = "similar"
|
||||
version = "2.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fa42c91313f1d05da9b26f267f931cf178d4aba455b4c4622dd7355eb80c6640"
|
||||
|
||||
[[package]]
|
||||
name = "slice-group-by"
|
||||
version = "0.3.1"
|
||||
|
|
@ -1395,7 +1395,6 @@ dependencies = [
|
|||
"clap",
|
||||
"ctor",
|
||||
"ctrlc",
|
||||
"difference",
|
||||
"dirs",
|
||||
"filetime",
|
||||
"glob",
|
||||
|
|
@ -1415,6 +1414,7 @@ dependencies = [
|
|||
"serde",
|
||||
"serde_derive",
|
||||
"serde_json",
|
||||
"similar",
|
||||
"smallbitvec",
|
||||
"tempfile",
|
||||
"tiny_http",
|
||||
|
|
|
|||
|
|
@ -51,7 +51,6 @@ clap = { version = "4.5.4", features = [
|
|||
] }
|
||||
ctor = "0.2.8"
|
||||
ctrlc = { version = "3.4.4", features = ["termination"] }
|
||||
difference = "2.0.0"
|
||||
dirs = "5.0.1"
|
||||
filetime = "0.2.23"
|
||||
fs4 = "0.8.3"
|
||||
|
|
@ -75,6 +74,7 @@ semver = "1.0.23"
|
|||
serde = { version = "1.0.202", features = ["derive"] }
|
||||
serde_derive = "1.0.197"
|
||||
serde_json = { version = "1.0.117", features = ["preserve_order"] }
|
||||
similar = "2.5.0"
|
||||
smallbitvec = "2.5.3"
|
||||
tempfile = "3.10.1"
|
||||
thiserror = "1.0.61"
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ anstyle.workspace = true
|
|||
anyhow.workspace = true
|
||||
clap.workspace = true
|
||||
ctrlc.workspace = true
|
||||
difference.workspace = true
|
||||
dirs.workspace = true
|
||||
filetime.workspace = true
|
||||
glob.workspace = true
|
||||
|
|
@ -47,6 +46,7 @@ semver.workspace = true
|
|||
serde.workspace = true
|
||||
serde_derive.workspace = true
|
||||
serde_json.workspace = true
|
||||
similar.workspace = true
|
||||
smallbitvec.workspace = true
|
||||
tiny_http.workspace = true
|
||||
walkdir.workspace = true
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ use std::{
|
|||
|
||||
use anstyle::{AnsiColor, Color, Style};
|
||||
use anyhow::{anyhow, Context, Result};
|
||||
use difference::{Changeset, Difference};
|
||||
use indoc::indoc;
|
||||
use lazy_static::lazy_static;
|
||||
use regex::{
|
||||
bytes::{Regex as ByteRegex, RegexBuilder as ByteRegexBuilder},
|
||||
Regex,
|
||||
};
|
||||
use similar::{ChangeTag, TextDiff};
|
||||
use tree_sitter::{format_sexp, Language, LogType, Parser, Query};
|
||||
use walkdir::WalkDir;
|
||||
|
||||
|
|
@ -276,32 +276,39 @@ pub fn print_diff_key() {
|
|||
}
|
||||
|
||||
pub fn print_diff(actual: &str, expected: &str, use_color: bool) {
|
||||
let changeset = Changeset::new(actual, expected, "\n");
|
||||
for diff in &changeset.diffs {
|
||||
match diff {
|
||||
Difference::Same(part) => {
|
||||
let diff = TextDiff::from_lines(actual, expected);
|
||||
for diff in diff.iter_all_changes() {
|
||||
match diff.tag() {
|
||||
ChangeTag::Equal => {
|
||||
if use_color {
|
||||
print!("{part}{}", changeset.split);
|
||||
print!("{diff}");
|
||||
} else {
|
||||
print!("correct:\n{part}{}", changeset.split);
|
||||
print!(" {diff}");
|
||||
}
|
||||
}
|
||||
Difference::Add(part) => {
|
||||
ChangeTag::Insert => {
|
||||
if use_color {
|
||||
println!("{}{}", paint(Some(AnsiColor::Green), part), changeset.split);
|
||||
print!("{}", paint(Some(AnsiColor::Green), diff.as_str().unwrap()));
|
||||
} else {
|
||||
print!("expected:\n{part}{}", changeset.split);
|
||||
print!("+{diff}");
|
||||
}
|
||||
if diff.missing_newline() {
|
||||
println!();
|
||||
}
|
||||
}
|
||||
Difference::Rem(part) => {
|
||||
ChangeTag::Delete => {
|
||||
if use_color {
|
||||
println!("{}{}", paint(Some(AnsiColor::Red), part), changeset.split);
|
||||
print!("{}", paint(Some(AnsiColor::Red), diff.as_str().unwrap()));
|
||||
} else {
|
||||
print!("unexpected:\n{part}{}", changeset.split);
|
||||
print!("-{diff}");
|
||||
}
|
||||
if diff.missing_newline() {
|
||||
println!();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
println!();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue