[PATCH] git-gui: highlight comment lines in commit message
These lines are stripped by wash_commit_message, but there is no indication
in the UI that they are special and will be removed.
Add highlighting to make it clear these lines are special.
Signed-off-by: Wolfgang Faust <contrib-git@wolfgangfaust.com>
(I'm not very good with tcl, so I suspect this code could use some work.
In particular the regex being a mangled copy of the one in the wash
procedure seems like a code smell, though I'm not sure how to improve
it.)
---
git-gui/git-gui.sh | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh
index d3d3aa14a9..3a0c08aa38 100755
--- a/git-gui/git-gui.sh
+++ b/git-gui/git-gui.sh
@@ -3900,6 +3900,25 @@ 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 highlight_commit_comment_lines {} {
+ global ui_comm comment_string
+ $ui_comm tag remove commit_comment 0.0 end
+ set text [$ui_comm get 1.0 end]
+ # See also cmt_rx in wash_commit_message
+ set cmt_rx [strcat {(?:^|\n)(} [regsub -all {\W}
$comment_string {\\&}] {[^\n]*)}]
+ set ranges [regexp -all -indices -inline -- $cmt_rx $text]
+ for {set i 1} {$i < [llength $ranges]} {incr i 2} {
+ $ui_comm tag add commit_comment \
+ [$ui_comm index "1.0 + [lindex [lindex $ranges $i] 0] chars"] \
+ [$ui_comm index "1.0 + [lindex [lindex $ranges $i] 0]
chars lineend + 1 char"]
+ }
+ }
+ highlight_commit_comment_lines
+ bind $ui_comm <<Modified>> { after idle highlight_commit_comment_lines }
+
# -- If the user has aspell available we can drive it
# in pipe mode to spellcheck the commit message.
#
base-commit: 7b2bccb0d58d4f24705bf985de1f4612e4cf06e5
--
2.52.0