From 2964c6d535a528c3c44d619c11ae36b162459e5e Mon Sep 17 00:00:00 2001 From: Chris Wilson <46912004+sushicw@users.noreply.github.com> Date: Wed, 19 Mar 2025 11:42:26 -0700 Subject: [PATCH 1/5] Fix unified diff hunk header highlight to allow for single-number case --- src/languages/diff.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/languages/diff.js b/src/languages/diff.js index ed7161f3be..e5087934ab 100644 --- a/src/languages/diff.js +++ b/src/languages/diff.js @@ -17,7 +17,7 @@ export default function(hljs) { className: 'meta', relevance: 10, match: regex.either( - /^@@ +-\d+,\d+ +\+\d+,\d+ +@@/, + /^@@ +-\d+(?:,\d+)? +\+\d+(?:,\d+)? +@@/, /^\*\*\* +\d+,\d+ +\*\*\*\*$/, /^--- +\d+,\d+ +----$/ ) From e25ff52192cc1fc8c7a705fdc355d127a49df473 Mon Sep 17 00:00:00 2001 From: Chris Wilson <crwilson@google.com> Date: Wed, 19 Mar 2025 18:58:39 +0000 Subject: [PATCH 2/5] update changelog --- CHANGES.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index e0b3e0ab7a..84ca31ce9e 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -8,12 +8,14 @@ Core Grammars: - enh(csp) add missing directives / keywords from MDN (7 more) [Max Liashuk][] - enh(ada) add new `parallel` keyword, allow `[]` for Ada 2022 [Max Reznik][] +- fix(diff) fix unified diff hunk header regex to allow unpaired numbers [Chris Wilson][] CONTRIBUTORS [Josh Marchand]: https://github.com/yHSJ [Max Liashuk]: https://github.com/probil [Max Reznik]: https://github.com/reznikmm +[Chris Wilson]: https://github.com/sushicw ## Version 11.11.1 From 1c31e4126e1ddea883850e003f51c2746c49591e Mon Sep 17 00:00:00 2001 From: Chris Wilson <crwilson@google.com> Date: Wed, 19 Mar 2025 19:09:05 +0000 Subject: [PATCH 3/5] add test cases --- test/markup/diff/git-format-patch.expect.txt | 7 +++++++ test/markup/diff/git-format-patch.txt | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/test/markup/diff/git-format-patch.expect.txt b/test/markup/diff/git-format-patch.expect.txt index ab02ee1838..a2f937d9a5 100644 --- a/test/markup/diff/git-format-patch.expect.txt +++ b/test/markup/diff/git-format-patch.expect.txt @@ -12,3 +12,10 @@ <span class="hljs-meta">@@ -28,2 +28,2 @@</span> <span class="hljs-deletion">- removal</span> <span class="hljs-addition">+ addition</span> +<span class="hljs-comment">diff --git a/single_line_a.txt b/single_line_b.txt</span> +<span class="hljs-comment">index 8baef1b..24c5735 100644</span> +<span class="hljs-comment">--- a/single_line_a.txt</span> +<span class="hljs-comment">+++ b/single_line_b.txt</span> +<span class="hljs-meta">@@ -1 +1 @@</span> +<span class="hljs-deletion">-removal</span> +<span class="hljs-addition">+addition</span> diff --git a/test/markup/diff/git-format-patch.txt b/test/markup/diff/git-format-patch.txt index 8b5ab0c5d0..2f47ccf0e0 100644 --- a/test/markup/diff/git-format-patch.txt +++ b/test/markup/diff/git-format-patch.txt @@ -12,3 +12,10 @@ index 123456..789abc 100644 @@ -28,2 +28,2 @@ - removal + addition +diff --git a/single_line_a.txt b/single_line_b.txt +index 8baef1b..24c5735 100644 +--- a/single_line_a.txt ++++ b/single_line_b.txt +@@ -1 +1 @@ +-removal ++addition From fc3a1835c19e8539e234a4155c6eeb91b225670e Mon Sep 17 00:00:00 2001 From: Chris Wilson <crwilson@google.com> Date: Thu, 20 Mar 2025 14:20:28 +0000 Subject: [PATCH 4/5] additional test cases --- test/markup/diff/git-format-patch.expect.txt | 22 +++++++++++++++++--- test/markup/diff/git-format-patch.txt | 22 +++++++++++++++++--- 2 files changed, 38 insertions(+), 6 deletions(-) diff --git a/test/markup/diff/git-format-patch.expect.txt b/test/markup/diff/git-format-patch.expect.txt index a2f937d9a5..12b4eee485 100644 --- a/test/markup/diff/git-format-patch.expect.txt +++ b/test/markup/diff/git-format-patch.expect.txt @@ -12,10 +12,26 @@ <span class="hljs-meta">@@ -28,2 +28,2 @@</span> <span class="hljs-deletion">- removal</span> <span class="hljs-addition">+ addition</span> -<span class="hljs-comment">diff --git a/single_line_a.txt b/single_line_b.txt</span> +<span class="hljs-comment">diff --git a/file.txt b/file.txt</span> <span class="hljs-comment">index 8baef1b..24c5735 100644</span> -<span class="hljs-comment">--- a/single_line_a.txt</span> -<span class="hljs-comment">+++ b/single_line_b.txt</span> +<span class="hljs-comment">--- a/file.txt</span> +<span class="hljs-comment">+++ b/file.txt</span> <span class="hljs-meta">@@ -1 +1 @@</span> <span class="hljs-deletion">-removal</span> <span class="hljs-addition">+addition</span> +<span class="hljs-comment">diff --git a/file.txt b/file.txt</span> +<span class="hljs-comment">index f9308d8..f39c17d 100644</span> +<span class="hljs-comment">--- a/file.txt</span> +<span class="hljs-comment">+++ b/file.txt</span> +<span class="hljs-meta">@@ -1,2 +1 @@</span> +<span class="hljs-deletion">-removal1</span> +<span class="hljs-deletion">-removal2</span> +<span class="hljs-addition">+addition</span> +<span class="hljs-comment">diff --git a/file.txt b/file.txt</span> +<span class="hljs-comment">index 1037b05..54addbd 100644</span> +<span class="hljs-comment">--- a/file.txt</span> +<span class="hljs-comment">+++ b/file.txt</span> +<span class="hljs-meta">@@ -1 +1,2 @@</span> +<span class="hljs-deletion">-removal</span> +<span class="hljs-addition">+addition1</span> +<span class="hljs-addition">+addition2</span> diff --git a/test/markup/diff/git-format-patch.txt b/test/markup/diff/git-format-patch.txt index 2f47ccf0e0..ad81fe6d14 100644 --- a/test/markup/diff/git-format-patch.txt +++ b/test/markup/diff/git-format-patch.txt @@ -12,10 +12,26 @@ index 123456..789abc 100644 @@ -28,2 +28,2 @@ - removal + addition -diff --git a/single_line_a.txt b/single_line_b.txt +diff --git a/file.txt b/file.txt index 8baef1b..24c5735 100644 ---- a/single_line_a.txt -+++ b/single_line_b.txt +--- a/file.txt ++++ b/file.txt @@ -1 +1 @@ -removal +addition +diff --git a/file.txt b/file.txt +index f9308d8..f39c17d 100644 +--- a/file.txt ++++ b/file.txt +@@ -1,2 +1 @@ +-removal1 +-removal2 ++addition +diff --git a/file.txt b/file.txt +index 1037b05..54addbd 100644 +--- a/file.txt ++++ b/file.txt +@@ -1 +1,2 @@ +-removal ++addition1 ++addition2 From 598a689356ba01324fd662059ae4b66e62fa516c Mon Sep 17 00:00:00 2001 From: Chris Wilson <crwilson@google.com> Date: Mon, 24 Mar 2025 15:15:50 +0000 Subject: [PATCH 5/5] Switch to multiple simpler regexes --- src/languages/diff.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/languages/diff.js b/src/languages/diff.js index e5087934ab..4870556f6b 100644 --- a/src/languages/diff.js +++ b/src/languages/diff.js @@ -17,7 +17,10 @@ export default function(hljs) { className: 'meta', relevance: 10, match: regex.either( - /^@@ +-\d+(?:,\d+)? +\+\d+(?:,\d+)? +@@/, + /^@@ +-\d+,\d+ +\+\d+,\d+ +@@/, // @@ -1,2 +1,2 @@ + /^@@ +-\d+ +\+\d+,\d+ +@@/, // @@ -1 +1,2 @@ + /^@@ +-\d+,\d+ +\+\d+ +@@/, // @@ -1,2 +1 @@ + /^@@ +-\d+ +\+\d+ +@@/, // @@ -1 +1 @@ /^\*\*\* +\d+,\d+ +\*\*\*\*$/, /^--- +\d+,\d+ +----$/ )