Subject: Re: [PATCH] git-gui: highlight comment lines in commit message

From: Johannes Sixt <[email-masked]>
Date: Wed, 4 Mar 2026 08:24:27 +0100

Am 04.03.26 um 02:30 schrieb Wolfgang Faust:
> Thank you, "dim" is a better term.

You forgot to update the commit message. I took the liberty to rewrite
it like so:

    git-gui: grey out comment lines in commit message

    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 <[email-masked]>
    Signed-off-by: Johannes Sixt <[email-masked]>

>> (I wonder why we need the +1char, though.)
> 
> Without it, putting the cursor at the end of a comment line and typing
> causes the newly inserted text to flash black briefly. Adding +1 puts
> the tag on the other side of the cursor, so the newly added text is dim.
> (The tradeoff is that putting the cursor at the end of the comment,
> pressing enter, and typing causes the newly inserted text to be grey
> briefly. I think this looks somewhat less bad than the other way around.)

Fair enough.

> +	# 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 }
Nicely done! Queued.

Thanks,
-- Hannes