]> git.ipfire.org Git - thirdparty/git.git/commitdiff
git-gui: grey out comment lines in commit message
authorWolfgang Faust <contrib-git@wolfgangfaust.com>
Wed, 4 Mar 2026 01:30:52 +0000 (17:30 -0800)
committerJohannes Sixt <j6t@kdbg.org>
Wed, 4 Mar 2026 07:04:37 +0000 (08:04 +0100)
Comment lines are stripped by wash_commit_message, but there is no
indication in the UI that they are special and will be removed.
Grey these lines out to indicate that they will be removed.

Signed-off-by: Wolfgang Faust <contrib-git@wolfgangfaust.com>
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
git-gui.sh

index d3d3aa14a9b46263584bdc4987e447a9de5e9455..23fe76e498bd17b4b37f2be6748a40f4bb8e9a1f 100755 (executable)
@@ -3900,6 +3900,24 @@ if {[winfo exists $ui_comm]} {
 
        backup_commit_buffer
 
+       # Grey out comment lines (which are stripped from the final commit message by
+       # wash_commit_message).
+       $ui_comm tag configure commit_comment -foreground gray
+       proc dim_commit_comment_lines {} {
+               global ui_comm comment_string
+               $ui_comm tag remove commit_comment 1.0 end
+               set text [$ui_comm get 1.0 end]
+               # See also cmt_rx in wash_commit_message
+               set cmt_rx [strcat {^} [regsub -all {\W} $comment_string {\\&}]]
+               set ranges [regexp -all -indices -inline -line -- $cmt_rx $text]
+               foreach pair $ranges {
+                       set idx "1.0 + [lindex $pair 0] chars"
+                       $ui_comm tag add commit_comment $idx "$idx lineend + 1 char"
+               }
+       }
+       dim_commit_comment_lines
+       bind $ui_comm <<Modified>> { after idle dim_commit_comment_lines }
+
        # -- If the user has aspell available we can drive it
        #    in pipe mode to spellcheck the commit message.
        #