threads / patch / 25750

patchgit-gui: support for underline styles

Subject: [PATCH] git-gui: support for underline styles

## tl;dr

5 messages between Nov 15, 2010 and Mar 30, 2011. Diffs are folded; open one to read it.

replies: 4people: 2as markdown or json

Bert Wesarg· Nov 15, 2010, 10:04 UTC · lore
Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
---
 git-gui/git-gui.sh   |    4 ++++
 git-gui/lib/diff.tcl |    3 ++-
 2 files changed, 6 insertions(+), 1 deletions(-)
Show changes to 2 files +6 −1

git-gui/git-gui.sh, git-gui/lib/diff.tcl

diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh
index d3acf0d..70c0483 100755
--- a/git-gui/git-gui.sh
+++ b/git-gui/git-gui.sh
@@ -3328,6 +3328,10 @@ foreach {n c} {0 black 1 red4 2 green4 3 yellow4 4 blue4 5 magenta4 6 cyan4 7 gr
 	$ui_diff tag configure clri4$n -foreground $c
 	$ui_diff tag configure clr3$n -foreground $c
 	$ui_diff tag configure clri3$n -background $c
+	$ui_diff tag configure clru4$n -underline 1 -background $c
+	$ui_diff tag configure clrui4$n -underline 1 -foreground $c
+	$ui_diff tag configure clru3$n -underline 1 -foreground $c
+	$ui_diff tag configure clrui3$n -underline 1 -background $c
 }
 $ui_diff tag configure clr1 -font font_diffbold
 
diff --git a/git-gui/lib/diff.tcl b/git-gui/lib/diff.tcl
index dcf0711..f59477f 100644
--- a/git-gui/lib/diff.tcl
+++ b/git-gui/lib/diff.tcl
@@ -463,7 +463,8 @@ proc read_diff {fd cont_info} {
 
 		foreach {posbegin colbegin posend colend} $markup {
 			set prefix clr
-			foreach style [split $colbegin ";"] {
+			foreach style [lsort -integer [split $colbegin ";"]] {
+				if {$style eq "4"} {append prefix u; continue}
 				if {$style eq "7"} {append prefix i; continue}
 				if {$style < 30 || $style > 47} {continue}
 				set a "$mark linestart + $posbegin chars"
-- 
tg: (6f10c41..) bw/git-gui/support-underline-ansi-styles (depends on: master)
Pat Thoyts· Nov 19, 2010, 10:00 UTC · re: Bert Wesarg · lore

Re: [PATCH] git-gui: support for underline styles

Suggested-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
---

I left underline out because I reckon it would just make text harder to read on a gui display. It seems like the option would only be useful on monochrome terminals.

If we do want to support underlines in the diff view window then we can have a different tag rather than replicating each color to get a underlined version of the same color. Something like the following should do it:

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

git-gui.sh, lib/diff.tcl

diff --git a/git-gui.sh b/git-gui.sh
index d3acf0d..137cd72 100755
--- a/git-gui.sh
+++ b/git-gui.sh
@@ -3330,6 +3330,7 @@ foreach {n c} {0 black 1 red4 2 green4 3 yellow4 4 blue4 5 magenta4 6 cyan4 7 gr
 	$ui_diff tag configure clri3$n -background $c
 }
 $ui_diff tag configure clr1 -font font_diffbold
+$ui_diff tag configure clr4 -underline 1
 
 $ui_diff tag conf d_cr -elide true
 $ui_diff tag conf d_@ -font font_diffbold
diff --git a/lib/diff.tcl b/lib/diff.tcl
index 0579fa6..203ab07 100644
--- a/lib/diff.tcl
+++ b/lib/diff.tcl
@@ -473,7 +473,7 @@ proc read_diff {fd cont_info} {
 			set prefix clr
 			foreach style [split $colbegin ";"] {
 				if {$style eq "7"} {append prefix i; continue}
-				if {$style < 30 || $style > 47} {continue}
+				if {$style != 4 && ($style < 30 || $style > 47)} {continue}
 				set a "$mark linestart + $posbegin chars"
 				set b "$mark linestart + $posend chars"
 				catch {$ui_diff tag add $prefix$style $a $b}
-- 
1.7.3.1.msysgit.0
Bert Wesarg· Nov 19, 2010, 10:55 UTC · re: Pat Thoyts · lore

Re: [PATCH] git-gui: support for underline styles

On Fri, Nov 19, 2010 at 11:00, Pat Thoyts <patthoyts@users.sourceforge.net> wrote:

Show 13 quoted lines
>
> Suggested-by: Bert Wesarg <bert.wesarg@googlemail.com>
> Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
> ---
>
> I left underline out because I reckon it would just make text harder to
> read on a gui display. It seems like the option would only be useful on
> monochrome terminals.
>
> If we do want to support underlines in the diff view window then we can
> have a different tag rather than replicating each color to get a
> underlined version of the same color.
> Something like the following should do it:

Thanks for this simple implementation. My only concern left is the ordering. If we have '\033[7;4;30m' than we end up using 'clri4' as tag, which does not exists. I suspect that git does not produce such unordered attributes. But for clarity I would suggest to keep my lsort around the split command.

Bert
Show 35 quoted lines
>
>
>  git-gui.sh   |    1 +
>  lib/diff.tcl |    2 +-
>  2 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/git-gui.sh b/git-gui.sh
> index d3acf0d..137cd72 100755
> --- a/git-gui.sh
> +++ b/git-gui.sh
> @@ -3330,6 +3330,7 @@ foreach {n c} {0 black 1 red4 2 green4 3 yellow4 4 blue4 5 magenta4 6 cyan4 7 gr
>        $ui_diff tag configure clri3$n -background $c
>  }
>  $ui_diff tag configure clr1 -font font_diffbold
> +$ui_diff tag configure clr4 -underline 1
>
>  $ui_diff tag conf d_cr -elide true
>  $ui_diff tag conf d_@ -font font_diffbold
> diff --git a/lib/diff.tcl b/lib/diff.tcl
> index 0579fa6..203ab07 100644
> --- a/lib/diff.tcl
> +++ b/lib/diff.tcl
> @@ -473,7 +473,7 @@ proc read_diff {fd cont_info} {
>                        set prefix clr
>                        foreach style [split $colbegin ";"] {
>                                if {$style eq "7"} {append prefix i; continue}
> -                               if {$style < 30 || $style > 47} {continue}
> +                               if {$style != 4 && ($style < 30 || $style > 47)} {continue}
>                                set a "$mark linestart + $posbegin chars"
>                                set b "$mark linestart + $posend chars"
>                                catch {$ui_diff tag add $prefix$style $a $b}
> --
> 1.7.3.1.msysgit.0
>
>
Bert Wesarg· Feb 27, 2011, 20:04 UTC · re: Pat Thoyts · lore

Re: [PATCH] git-gui: support for underline styles

On Fri, Nov 19, 2010 at 11:00, Pat Thoyts <patthoyts@users.sourceforge.net> wrote:

Show 13 quoted lines
>
> Suggested-by: Bert Wesarg <bert.wesarg@googlemail.com>
> Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
> ---
>
> I left underline out because I reckon it would just make text harder to
> read on a gui display. It seems like the option would only be useful on
> monochrome terminals.
>
> If we do want to support underlines in the diff view window then we can
> have a different tag rather than replicating each color to get a
> underlined version of the same color.
> Something like the following should do it:
I miss this in git-gui.git.

Thanks, Bert

Show 35 quoted lines
>
>
>  git-gui.sh   |    1 +
>  lib/diff.tcl |    2 +-
>  2 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/git-gui.sh b/git-gui.sh
> index d3acf0d..137cd72 100755
> --- a/git-gui.sh
> +++ b/git-gui.sh
> @@ -3330,6 +3330,7 @@ foreach {n c} {0 black 1 red4 2 green4 3 yellow4 4 blue4 5 magenta4 6 cyan4 7 gr
>        $ui_diff tag configure clri3$n -background $c
>  }
>  $ui_diff tag configure clr1 -font font_diffbold
> +$ui_diff tag configure clr4 -underline 1
>
>  $ui_diff tag conf d_cr -elide true
>  $ui_diff tag conf d_@ -font font_diffbold
> diff --git a/lib/diff.tcl b/lib/diff.tcl
> index 0579fa6..203ab07 100644
> --- a/lib/diff.tcl
> +++ b/lib/diff.tcl
> @@ -473,7 +473,7 @@ proc read_diff {fd cont_info} {
>                        set prefix clr
>                        foreach style [split $colbegin ";"] {
>                                if {$style eq "7"} {append prefix i; continue}
> -                               if {$style < 30 || $style > 47} {continue}
> +                               if {$style != 4 && ($style < 30 || $style > 47)} {continue}
>                                set a "$mark linestart + $posbegin chars"
>                                set b "$mark linestart + $posend chars"
>                                catch {$ui_diff tag add $prefix$style $a $b}
> --
> 1.7.3.1.msysgit.0
>
>
Bert Wesarg· Mar 30, 2011, 06:44 UTC · re: Bert Wesarg · lore

[PATCH 1/2] git-gui: support for underline styles

From: Pat Thoyts <patthoyts@users.sourceforge.net>
From: Pat Thoyts <patthoyts@users.sourceforge.net>
Suggested-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
---

I left underline out because I reckon it would just make text harder to read on a gui display. It seems like the option would only be useful on monochrome terminals.

If we do want to support underlines in the diff view window then we can
have a different tag rather than replicating each color to get a
underlined version of the same color.
Something like the following should do it:
---
 git-gui.sh   |    1 +
 lib/diff.tcl |    2 +-
 2 files changed, 2 insertions(+), 1 deletions(-)
Show changes to 2 files +2 −1

git-gui.sh, lib/diff.tcl

diff --git a/git-gui.sh b/git-gui.sh
index fd6a43d..d5c1535 100755
--- a/git-gui.sh
+++ b/git-gui.sh
@@ -3361,6 +3361,7 @@ foreach {n c} {0 black 1 red4 2 green4 3 yellow4 4 blue4 5 magenta4 6 cyan4 7 gr
 	$ui_diff tag configure clri3$n -background $c
 }
 $ui_diff tag configure clr1 -font font_diffbold
+$ui_diff tag configure clr4 -underline 1
 
 $ui_diff tag conf d_info -foreground blue -font font_diffbold
 
diff --git a/lib/diff.tcl b/lib/diff.tcl
index cf8a95e..39e4d90 100644
--- a/lib/diff.tcl
+++ b/lib/diff.tcl
@@ -504,7 +504,7 @@ proc read_diff {fd conflict_size cont_info} {
 			set prefix clr
 			foreach style [split $colbegin ";"] {
 				if {$style eq "7"} {append prefix i; continue}
-				if {$style < 30 || $style > 47} {continue}
+				if {$style != 4 && ($style < 30 || $style > 47)} {continue}
 				set a "$mark linestart + $posbegin chars"
 				set b "$mark linestart + $posend chars"
 				catch {$ui_diff tag add $prefix$style $a $b}
-- 
1.7.4.1.1319.ga04f7.dirty

← back to recent threads