[PATCH] git-gui: highlight trailing whitespace in diff view

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Highlight any trailing whitespace in the diff view using a red background
as is done in the terminal when color is enabled.

Suggested-by: Tor Arvid Lund <torarvid@xxxxxxxxx>
Signed-off-by: Pat Thoyts <patthoyts@xxxxxxxxxxxxxxxxxxxxx>
---

Tor Arvid Lund <torarvid@xxxxxxxxx> writes:
>Hi, all! When doing "git diff", whitespaces before EOL, for instance,
>are marked with red background in my terminal.
>
>Is it possible to see this coloring in git gui too?
>
>-Tor Arvid-

This patch should do the job. It probably should get some configuration
item to control this though.

 git-gui.sh   |    1 +
 lib/diff.tcl |    9 ++++++++-
 2 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/git-gui.sh b/git-gui.sh
index 25229a4..8d652f0 100755
--- a/git-gui.sh
+++ b/git-gui.sh
@@ -3314,6 +3314,7 @@ pack .vpane.lower.diff.header -side top -fill x
 pack .vpane.lower.diff.body -side bottom -fill both -expand 1
 
 $ui_diff tag conf d_cr -elide true
+$ui_diff tag conf ws -background red
 $ui_diff tag conf d_@ -foreground blue -font font_diffbold
 $ui_diff tag conf d_+ -foreground {#00a000}
 $ui_diff tag conf d_- -foreground red
diff --git a/lib/diff.tcl b/lib/diff.tcl
index c628750..83e3f6d 100644
--- a/lib/diff.tcl
+++ b/lib/diff.tcl
@@ -434,7 +434,14 @@ proc read_diff {fd cont_info} {
 			}
 			}
 		}
-		$ui_diff insert end $line $tags
+		if {[regexp -indices {^.*\S(\s+)$} $line -> ndx]} {
+		    set ndx [expr {[lindex $ndx 0] - 1}]
+			set nonws [string range $line 0 $ndx]
+			$ui_diff insert end $nonws $tags \
+				[string range $line [incr ndx] end] [concat $tags ws]
+		} else {
+			$ui_diff insert end $line $tags
+		}
 		if {[string index $line end] eq "\r"} {
 			$ui_diff tag add d_cr {end - 2c}
 		}
-- 
1.7.3.1.msysgit.0

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]