summaryrefslogtreecommitdiff
path: root/src/tests/test_example_diffs.rs
diff options
context:
space:
mode:
authorThomas Otto <th1000s@posteo.net>2024-07-10 08:48:31 +0200
committerDan Davison <dandavison7@gmail.com>2024-07-22 02:54:31 +0100
commit21695da83aa97a193bd9d8db14150250a95f17c1 (patch)
tree2fac9a6de11b133300211ef8ec364d4bc3e70883 /src/tests/test_example_diffs.rs
parent6205118b855e7aae92d7ac6b495e02a17c63a47c (diff)
Add --max-syntax-highlighting-length, set to 400
--max-line-length increased to 3000, highlighting now stops after 400 characters. In that case the highlighting may be incorrect until it is reset for the next hunk.
Diffstat (limited to 'src/tests/test_example_diffs.rs')
-rw-r--r--src/tests/test_example_diffs.rs160
1 files changed, 160 insertions, 0 deletions
diff --git a/src/tests/test_example_diffs.rs b/src/tests/test_example_diffs.rs
index 9ee3ca5..c91c8bd 100644
--- a/src/tests/test_example_diffs.rs
+++ b/src/tests/test_example_diffs.rs
@@ -1994,6 +1994,149 @@ src/align.rs:71: impl<'a> Alignment<'a> { │
.expect_after_header("#partial\n\nremoved: a");
}
+ #[test]
+ fn test_lines_with_syntax_width_limit() {
+ let result = DeltaTest::with_args(&[
+ "--max-line-length=42",
+ "--max-syntax-highlighting-length=18",
+ ])
+ .explain_ansi()
+ .with_input(GIT_DIFF_SINGLE_HUNK);
+ assert_snapshot!(result.output, @r###"
+ (normal)commit 94907c0f136f46dc46ffae2dc92dca9af7(reverse normal)→(normal)
+ Author: Dan Davison <dandavison7@gmail.co(reverse normal)→(normal)
+ Date: Thu May 14 11:13:17 2020 -0400
+
+ rustfmt
+
+
+ (blue)src/align.rs(normal)
+ (blue)───────────────────────────────────────────(normal)
+
+ (blue)─────────────────────────────(blue)┐(normal)
+ (blue)71(normal):(231) (81)impl(231)<(203)'a(231)> (149)Alignmen(normal)t<'a> { (blue)│(normal)
+ (blue)─────────────────────────────(blue)┘(normal)
+
+ (231) (203)for(231) (i, x_(normal)i) in self.x.iter().en→
+ (231) (203)for(231) (j(normal), y_j) in self.y.iter(→
+ (normal 52) let (left, diag, up) =(normal 124) ((normal)
+ (normal 52) self.index(i, j + 1(normal 124)),(normal)
+ (normal 52) self.index(i, j),(normal)
+ (normal 52) self.index(i + 1, j),(normal)
+ (normal 52) );(normal)
+ (231 22) le(normal 22)t (left, diag, up) =(normal)
+ (231 22) (normal 22) (normal 28)((normal 22)self.index(i, j + 1(normal 28)→(normal)
+ (231) le(normal)t candidates = [
+ (231) (normal) Cell {
+ (231) (normal) parent: left,
+ "###);
+ }
+
+ #[test]
+ fn test_lines_with_syntax_width_limit_wrapping() {
+ let result = DeltaTest::with_args(&[
+ "--side-by-side",
+ "--width=55",
+ "--wrap-max-lines=1",
+ "--max-line-length=10", // this gets ignored!
+ "--max-syntax-highlighting-length=22",
+ ])
+ .explain_ansi()
+ .with_input(GIT_DIFF_SINGLE_HUNK);
+
+ // eprintln!("{}", result.raw_output);
+ assert_snapshot!(result.output, @r###"
+ (normal)commit 94907c0f136f46dc46ffae2dc92dca9af7eb7c2e
+ Author: Dan Davison <dandavison7@gmail.com>
+ Date: Thu May 14 11:13:17 2020 -0400
+
+ rustfmt
+
+
+ (blue)src/align.rs(normal)
+ (blue)───────────────────────────────────────────────────────(normal)
+
+ (blue)─────────────────────────────(blue)┐(normal)
+ (blue)71(normal):(231) (81)impl(231)<(203)'a(231)> (149)Alignment(231)<(203)'a(normal)> { (blue)│(normal)
+ (blue)─────────────────────────────(blue)┘(normal)
+
+ (blue)│(238) 71 (blue)│(231) (203)for(231) (i, x_i)(blue)↵(blue) │(238) 71 (blue)│(231) (203)for(231) (i, x_i)(blue)↵(normal)
+ (blue)│(238) (blue)│(231) i(normal)n self.x.iter().en(reverse normal)→(blue) │(238) (blue)│(231) i(normal)n self.x.iter().en(reverse normal)→(normal)
+ (blue)│(238) 72 (blue)│(231) (203)for(231) (j, (blue)↵(blue) │(238) 72 (blue)│(231) (203)for(231) (j, (blue)↵(normal)
+ (blue)│(238) (blue)│(231)y_(normal)j) in self.y.iter((reverse normal)→(blue) │(238) (blue)│(231)y_(normal)j) in self.y.iter((reverse normal)→(normal)
+ (blue)│(88) 73 (blue)│(231 52) (81)let(231) (blue)↵(blue) │(28) 73 (blue)│(231 22) (81)let(231) (blue)↵(normal)
+ (blue)│(88) (blue)│(231 52)(l(normal 52)eft, diag, up) =(normal 124) ((normal 52) (blue) │(28) (blue)│(231 22)(l(normal 22)eft, diag, up) =(normal)
+ (blue)│(88) 74 (blue)│(231 52) (blue)↵(blue) │(28) 74 (blue)│(231 22) (blue)↵(normal)
+ (blue)│(88) (blue)│(231 52)se(normal 52)lf.index(i, j + 1),(blue) │(28) (blue)│(231 28)((normal 22)s(normal 22)elf.index(i, j + 1(reverse normal)→(normal)
+ (blue)│(88) 75 (blue)│(231 52) (blue)↵(blue) │(28) (blue)│(normal)
+ (blue)│(88) (blue)│(231 52)se(normal 52)lf.index(i, j),(normal 52) (blue) │(28) (blue)│(normal)
+ (blue)│(88) 76 (blue)│(231 52) (blue)↵(blue) │(28) (blue)│(normal)
+ (blue)│(88) (blue)│(231 52)se(normal 52)lf.index(i + 1, j),(blue) │(28) (blue)│(normal)
+ (blue)│(88) 77 (blue)│(231 52) );(normal 52) (blue) │(28) (blue)│(normal)
+ (blue)│(238) 78 (blue)│(231) (81)let(231) (blue)↵(blue) │(238) 75 (blue)│(231) (81)let(231) (blue)↵(normal)
+ (blue)│(238) (blue)│(231)ca(normal)ndidates = [ (blue) │(238) (blue)│(231)ca(normal)ndidates = [
+ (blue)│(238) 79 (blue)│(231) (blue)↵(blue) │(238) 76 (blue)│(231) (blue)↵(normal)
+ (blue)│(238) (blue)│(231)Ce(normal)ll { (blue) │(238) (blue)│(231)Ce(normal)ll {
+ (blue)│(238) 80 (blue)│(231) (blue)↵(blue) │(238) 77 (blue)│(231) (blue)↵(normal)
+ (blue)│(238) (blue)│(231) (normal) parent: left, (blue) │(238) (blue)│(231) (normal) parent: left,
+ "###);
+ }
+
+ #[test]
+ fn test_lines_with_syntax_width_unicode() {
+ let result = DeltaTest::with_args(&["--max-syntax-highlighting-length=11"])
+ .explain_ansi()
+ .with_input(GIT_DIFF_ALL_UNICODE_W_FULLWIDTH);
+
+ assert_snapshot!(result.output, @r###"
+ (normal)
+
+ (blue)src/a(normal)
+ (blue)───────────────────────────────────────────(normal)
+
+ (blue)───(blue)┐(normal)
+ (blue)1(normal): (blue)│(normal)
+ (blue)───(blue)┘(normal)
+ (231)一æäöø€ÆÄÖ(normal)〇Øß一
+ (231)一æäöø€ÆÄÖ(normal)〇Øß一
+ (normal 52)二æäöø(normal 124)¢(normal 52)ÆÄÖ〇Øß二(normal)
+ (normal 52)二æäöø(normal 124)¢(normal 52)ÆÄÖ〇Øß二(normal)
+ (231 22)二æäöø(normal 28)€(normal 22)ÆÄÖ(normal 22)〇Øß二(normal)
+ (231 22)二æäöø(normal 28)€(normal 22)ÆÄÖ(normal 22)〇Øß二(normal)
+ (231)三æäöø€ÆÄÖ(normal)〇Øß三
+ (231)三æäöø€ÆÄÖ(normal)〇Øß三
+ (231)¶(normal)
+ "###);
+
+ let result = DeltaTest::with_args(&[
+ "--max-syntax-highlighting-length=10",
+ "--max-line-length=16",
+ ])
+ .explain_ansi()
+ .with_input(GIT_DIFF_ALL_UNICODE_W_FULLWIDTH);
+
+ // eprintln!("{}", result.raw_output);
+ assert_snapshot!(result.output, @r###"
+ (normal)
+
+ (blue)src/a(normal)
+ (blue)───────────────────────────────────────────(normal)
+
+ (blue)───(blue)┐(normal)
+ (blue)1(normal): (blue)│(normal)
+ (blue)───(blue)┘(normal)
+ (231)一æäöø€ÆÄÖ(normal)〇Øß→
+ (231)一æäöø€ÆÄÖ(normal)〇Øß→
+ (normal 52)二æäöø(normal 124)¢(normal 52)ÆÄÖ〇Øß→(normal)
+ (normal 52)二æäöø(normal 124)¢(normal 52)ÆÄÖ〇Øß→(normal)
+ (231 22)二æäöø(normal 28)€(normal 22)ÆÄÖ(normal 22)〇Øß→(normal)
+ (231 22)二æäöø(normal 28)€(normal 22)ÆÄÖ(normal 22)〇Øß→(normal)
+ (231)三æäöø€ÆÄÖ(normal)〇Øß→
+ (231)三æäöø€ÆÄÖ(normal)〇Øß→
+ (231)¶(normal)
+ "###);
+ }
+
const GIT_DIFF_SINGLE_HUNK: &str = "\
commit 94907c0f136f46dc46ffae2dc92dca9af7eb7c2e
Author: Dan Davison <dandavison7@gmail.com>
@@ -2965,4 +3108,21 @@ diff --git a a
new file mode 100644
index 0000000..e69de29
";
+
+ const GIT_DIFF_ALL_UNICODE_W_FULLWIDTH: &str = "
+diff --git a/src/a b/src/a
+index 53f98b6..14d6caa 100644
+--- a/src/a
++++ b/src/a
+@@ -1,7 +1,7 @@
+ 一æäöø€ÆÄÖ〇Øß一
+ 一æäöø€ÆÄÖ〇Øß一
+-二æäöø¢ÆÄÖ〇Øß二
+-二æäöø¢ÆÄÖ〇Øß二
++二æäöø€ÆÄÖ〇Øß二
++二æäöø€ÆÄÖ〇Øß二
+ 三æäöø€ÆÄÖ〇Øß三
+ 三æäöø€ÆÄÖ〇Øß三
+ ¶
+";
}