threads / patch / 14906

patchgit gui: visually wrap lines of commit message

Subject: [PATCH] git gui: visually wrap lines of commit message

## tl;dr

9 messages between Aug 9, 2008 and Aug 10, 2008. Diffs are folded; open one to read it.

replies: 8people: 4as markdown or json

Clemens Buchacher· Aug 9, 2008, 16:05 UTC · lore

Visually wrap lines in the commit message text box. That way we can avoid a horizontal scroll bar (which was not available anyways).

Note: This does _not_ break lines in the actual commit message.
Signed-off-by: Clemens Buchacher <drizzd@aon.at>
---

I also tried to get automatic line breaks but was unable to do so. I managed to implement a callback function triggered by the <<Modified>> event, and I also managed to query the end position of the insertion using the 'insert' index. So with this information it would be possible to implement automatic line breaks. Unfortunately, this is not enough for pasting. If there is more than one new character, the start position of the insertion is unknown.

I then tried to track cursor movement, but no luck there either. Any ideas are welcome. For now I'll simply have to "git commit --amend<CR>gqG:x<CR>" each time I use git gui.

Clemens
 git-gui/git-gui.sh |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
Show changes to git-gui/git-gui.sh +1 −0
diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh
index 14b2d9a..3949f7d 100755
--- a/git-gui/git-gui.sh
+++ b/git-gui/git-gui.sh
@@ -2528,6 +2528,7 @@ text $ui_comm -background white -foreground black \
 	-autoseparators true \
 	-relief sunken \
 	-width $repo_config(gui.commitmsgwidth) -height 9 -wrap none \
+	-wrap char \
 	-font font_diff \
 	-yscrollcommand {.vpane.lower.commarea.buffer.sby set}
 scrollbar .vpane.lower.commarea.buffer.sby \
-- 
1.5.6.4
Johannes Sixt· Aug 9, 2008, 21:44 UTC · re: Clemens Buchacher · lore

Re: [PATCH] git gui: visually wrap lines of commit message

On Samstag, 9. August 2008, Clemens Buchacher wrote:
> Visually wrap lines in the commit message text box. That way we can avoid
> a horizontal scroll bar (which was not available anyways).
>
> Note: This does _not_ break lines in the actual commit message.
Please don't do that. I want to get what I see.
-- Hannes
Clemens Buchacher· Aug 9, 2008, 22:06 UTC · re: Johannes Sixt · lore

Re: [PATCH] git gui: visually wrap lines of commit message

On Sat, Aug 09, 2008 at 11:44:33PM +0200, Johannes Sixt wrote:
Show 7 quoted lines
> On Samstag, 9. August 2008, Clemens Buchacher wrote:
> > Visually wrap lines in the commit message text box. That way we can avoid
> > a horizontal scroll bar (which was not available anyways).
> >
> > Note: This does _not_ break lines in the actual commit message.
> 
> Please don't do that. I want to get what I see.

Currently you don't see the whole message anyways if the box is too small for the text. I find that quite annoying, especially since there are neither keys nor a scrollbar to scroll horizontally.

And if you break the lines manually, it really doesn't make a difference. Unless you "forget" to do so, which is unlikely, because the virtual wrap will wrap per-character and not per-word.

Clemens
Johannes Sixt· Aug 9, 2008, 22:14 UTC · re: Clemens Buchacher · lore

Re: [PATCH] git gui: visually wrap lines of commit message

On Sonntag, 10. August 2008, Clemens Buchacher wrote:
Show 12 quoted lines
> On Sat, Aug 09, 2008 at 11:44:33PM +0200, Johannes Sixt wrote:
> > On Samstag, 9. August 2008, Clemens Buchacher wrote:
> > > Visually wrap lines in the commit message text box. That way we can
> > > avoid a horizontal scroll bar (which was not available anyways).
> > >
> > > Note: This does _not_ break lines in the actual commit message.
> >
> > Please don't do that. I want to get what I see.
>
> Currently you don't see the whole message anyways if the box is too small
> for the text. I find that quite annoying, especially since there are
> neither keys nor a scrollbar to scroll horizontally.

In this case, I use the middle mouse button to pan around. And then I do see what I will get.

The width of the box was chosen wisely: It takes a bit less than 80 columns, to leave room for quoting in emails and to avoid wrapping of git log output.

-- Hannes
Clemens Buchacher· Aug 9, 2008, 22:41 UTC · re: Johannes Sixt · lore

Re: [PATCH] git gui: visually wrap lines of commit message

On Sun, Aug 10, 2008 at 12:14:13AM +0200, Johannes Sixt wrote:
Show 6 quoted lines
> > Currently you don't see the whole message anyways if the box is too small
> > for the text. I find that quite annoying, especially since there are
> > neither keys nor a scrollbar to scroll horizontally.
> 
> In this case, I use the middle mouse button to pan around. And then I do
> see what I will get.

Ok, that's not bad. But nevertheless I think we should at least add a scrollbar.

> The width of the box was chosen wisely: It takes a bit less than 80
> columns, to leave room for quoting in emails and to avoid wrapping of git
> log output.

Maybe I'm doing something wrong, but on my system (wish8.5) the box width changes with the window size, and gui.commitmsgwidth appears to be ignored. Even if I close and restart git gui, the old window size is kept.

Clemens
Shawn O. Pearce· Aug 10, 2008, 02:25 UTC · re: Clemens Buchacher · lore

Re: [PATCH] git gui: visually wrap lines of commit message

Clemens Buchacher <drizzd@aon.at> wrote:
Show 10 quoted lines
> On Sun, Aug 10, 2008 at 12:14:13AM +0200, Johannes Sixt wrote:
> > > Currently you don't see the whole message anyways if the box is too small
> > > for the text. I find that quite annoying, especially since there are
> > > neither keys nor a scrollbar to scroll horizontally.
> > 
> > In this case, I use the middle mouse button to pan around. And then I do
> > see what I will get.
> 
> Ok, that's not bad. But nevertheless I think we should at least add a
> scrollbar.
I thought the scrollbar took up too much vertical space, so I did
not want to put in a horizontal scrollbar on a box that never should
require horizontal scrolling.  As Johannes points out...
 
Show 7 quoted lines
> > The width of the box was chosen wisely: It takes a bit less than 80
> > columns, to leave room for quoting in emails and to avoid wrapping of git
> > log output.
> 
> Maybe I'm doing something wrong, but on my system (wish8.5) the box width
> changes with the window size, and gui.commitmsgwidth appears to be ignored.
> Even if I close and restart git gui, the old window size is kept.

That's a bug, and I now understand why you have a problem. That box should not be resizing itself. Its supposed to be using a fixed width font, and have a fixed number of columns, so you can format a message including drawing ASCII art to explain yourself clearly as you write a change.

I'll consider a patch that fixes the box so it doesn't resize under 8.5, but I won't apply one that applies virtual line wrapping as then we lose the what-you-see-is-what-you-get property of the editor, and that is a very important property for git-gui users.

-- 
Shawn.
Lars Noschinski· Aug 10, 2008, 07:56 UTC · re: Shawn O. Pearce · lore

Re: [PATCH] git gui: visually wrap lines of commit message

* Shawn O. Pearce <spearce@spearce.org> [08-08-10 04:25]:
Show 9 quoted lines
>> Maybe I'm doing something wrong, but on my system (wish8.5) the box width
>> changes with the window size, and gui.commitmsgwidth appears to be ignored.
>> Even if I close and restart git gui, the old window size is kept.
>
>That's a bug, and I now understand why you have a problem.  That box
>should not be resizing itself.  Its supposed to be using a fixed
>width font, and have a fixed number of columns, so you can format
>a message including drawing ASCII art to explain yourself clearly
>as you write a change.

The box always resizes, unless the window is wide enough. But I do not see a good way to fix that.

Shawn O. Pearce· Aug 10, 2008, 07:59 UTC · re: Lars Noschinski · lore

Re: [PATCH] git gui: visually wrap lines of commit message

Lars Noschinski <lars-2008-1@usenet.noschinski.de> wrote:
Show 13 quoted lines
> * Shawn O. Pearce <spearce@spearce.org> [08-08-10 04:25]:
>>> Maybe I'm doing something wrong, but on my system (wish8.5) the box width
>>> changes with the window size, and gui.commitmsgwidth appears to be ignored.
>>> Even if I close and restart git gui, the old window size is kept.
>>
>> That's a bug, and I now understand why you have a problem.  That box
>> should not be resizing itself.  Its supposed to be using a fixed
>> width font, and have a fixed number of columns, so you can format
>> a message including drawing ASCII art to explain yourself clearly
>> as you write a change.
>
> The box always resizes, unless the window is wide enough. But I do not
> see a good way to fix that.

Oh, you mean the window isn't large enough to show the full column width of the text area? But if you make it large enough, the box stops expanding?

-- 
Shawn.
Clemens Buchacher· Aug 10, 2008, 09:25 UTC · re: Shawn O. Pearce · lore

Re: [PATCH] git gui: visually wrap lines of commit message

On Sun, Aug 10, 2008 at 12:59:13AM -0700, Shawn O. Pearce wrote:
> Oh, you mean the window isn't large enough to show the full column
> width of the text area?  But if you make it large enough, the box
> stops expanding?
Yes, that is indeed the case. Sorry I missed that.

Knowing the trick with the middle mouse button, I can also live without a scrollbar. So this issue is resolved for me.

Clemens

← back to recent threads