[gitg] Higlight trailing whitespace



commit 3daef3124cd8f0e98b96e01c6c879e6dd79fefa9
Author: Jesse van den Kieboom <jessevdk gnome org>
Date:   Wed Jun 25 19:20:40 2014 +0200

    Higlight trailing whitespace
    
    https://bugzilla.gnome.org/show_bug.cgi?id=732233

 libgitg/gitg-diff-view-request-diff.vala    |    8 +++++++-
 libgitg/resources/diff-view-html-builder.js |   16 +++++++++++++++-
 libgitg/resources/diff-view.css             |    4 ++++
 3 files changed, 26 insertions(+), 2 deletions(-)
---
diff --git a/libgitg/gitg-diff-view-request-diff.vala b/libgitg/gitg-diff-view-request-diff.vala
index 1c6ab7f..e2eadeb 100644
--- a/libgitg/gitg-diff-view-request-diff.vala
+++ b/libgitg/gitg-diff-view-request-diff.vala
@@ -172,9 +172,15 @@ namespace Gitg
                        builder.begin_object();
                        {
                                var content = line.get_content();
+                               var text = line.get_text();
+
+                               // Split off trailing whitespace
+                               var chomped = text.chomp();
+                               var ws = text.slice(chomped.length, text.length);
 
                                builder.set_member_name("type").add_int_value((int64)line.get_origin());
-                               builder.set_member_name("content").add_string_value(line.get_text());
+                               builder.set_member_name("content").add_string_value(chomped);
+                               builder.set_member_name("trailing_whitespace").add_string_value(ws);
                                
builder.set_member_name("offset").add_int_value((int64)line.get_content_offset());
                                builder.set_member_name("length").add_int_value((int64)content.length);
                        }
diff --git a/libgitg/resources/diff-view-html-builder.js b/libgitg/resources/diff-view-html-builder.js
index 0fdc620..3e901bb 100644
--- a/libgitg/resources/diff-view-html-builder.js
+++ b/libgitg/resources/diff-view-html-builder.js
@@ -144,7 +144,21 @@ function diff_file(file, lnstate, data)
                        }
 
                        row += '<td class="gutter type">' + o + '</td>';
-                       row += '<td class="code">' + html_escape(l.content).replace(/\t/g, tabrepl) + '</td>';
+
+                       var content = html_escape(l.content);
+                       content = content.replace(/\t/g, tabrepl);
+
+                       var ws = '';
+
+                       if (l.trailing_whitespace.length > 0)
+                       {
+                               ws = html_escape(l.trailing_whitespace);
+                               ws = ws.replace(/\t/g, tabrepl);
+
+                               ws = '<span class="trailing-whitespace">' + ws + '</span>';
+                       }
+
+                       row += '<td class="code">' + content + ws + '</td>';
 
                        row += '</tr>';
 
diff --git a/libgitg/resources/diff-view.css b/libgitg/resources/diff-view.css
index 77e73f3..16886d0 100644
--- a/libgitg/resources/diff-view.css
+++ b/libgitg/resources/diff-view.css
@@ -76,6 +76,10 @@ span.tab {
   display: inline-block;
 }
 
+span.trailing-whitespace {
+  background-color: #cc3333;
+}
+
 div#diff div.file table.wrapped td.code {
   white-space: pre-wrap;
 }


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