Message ID | 20190216031051.8859-1-ismael@iodev.co.uk (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [v2] git-gui: Handle Ctrl + BS/Del in the commit msg | expand |
Ismael Luceno <ismael@iodev.co.uk> writes: > - Control+BackSpace: Delete word to the left of the cursor. > - Control+Delete : Delete word to the right of the cursor. > > Originally introduced by BRIEF and Turbo Vision between 1985 and 1992, > they were adopted by most CUA-Compliant UIs, including those of: OS/2, > Windows, Mac OS, Qt, GTK, Open/Libre Office, Gecko, and GNU Emacs. > > Signed-off-by: Ismael Luceno <ismael@iodev.co.uk> > --- > > Notes: > Changes since v1: > - Improved commit message. I do not use git-gui, but as a bystander, the intent of the change sounds sane. deleting from the insertion cursor to the end of the word where the insertion cursor is looks like the right way to delete the word to the right of the cursor. I am not sure if going back by one character from where the current insertion cursor is and further go back to the wordstart would give the beginning of the word to the left of the cursor, though. A larger issue is that we haven't heard from Pat, who has been helping git-gui.sh maintenance, for quite a while, so we'd need to find a volunteer to act as a replacement maintainer. If you are willing to, that would be great ;-) Thanks. > git-gui.sh | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/git-gui.sh b/git-gui.sh > index 5bc21b878d41..e00d9a345294 100755 > --- a/git-gui.sh > +++ b/git-gui.sh > @@ -3788,6 +3788,8 @@ bind $ui_comm <$M1B-Key-KP_Subtract> {show_less_context;break} > bind $ui_comm <$M1B-Key-equal> {show_more_context;break} > bind $ui_comm <$M1B-Key-plus> {show_more_context;break} > bind $ui_comm <$M1B-Key-KP_Add> {show_more_context;break} > +bind $ui_comm <Control-Key-BackSpace> {%W delete {insert -1 chars wordstart} insert;break} > +bind $ui_comm <Control-Key-Delete> {%W delete insert {insert wordend};break} > > bind $ui_diff <$M1B-Key-x> {tk_textCopy %W;break} > bind $ui_diff <$M1B-Key-X> {tk_textCopy %W;break}
On 20/Feb/2019 12:05, Junio C Hamano wrote: > Ismael Luceno <ismael@iodev.co.uk> writes: > > > - Control+BackSpace: Delete word to the left of the cursor. > > - Control+Delete : Delete word to the right of the cursor. > > > > Originally introduced by BRIEF and Turbo Vision between 1985 and 1992, > > they were adopted by most CUA-Compliant UIs, including those of: OS/2, > > Windows, Mac OS, Qt, GTK, Open/Libre Office, Gecko, and GNU Emacs. > > > > Signed-off-by: Ismael Luceno <ismael@iodev.co.uk> > > --- > > > > Notes: > > Changes since v1: > > - Improved commit message. > > I do not use git-gui, but as a bystander, the intent of the change > sounds sane. deleting from the insertion cursor to the end of the > word where the insertion cursor is looks like the right way to > delete the word to the right of the cursor. I am not sure if going > back by one character from where the current insertion cursor is and > further go back to the wordstart would give the beginning of the > word to the left of the cursor, though. Graphical explanation: Deleting to the left: v----- pointer X_WORD_X ^--^------ selection Deleting to the right: v--------- pointer X_WORD_X ^--^------ selection Current implementation doesn't behave correctly when there's multiple spaces: Deleting to the left: v--- pointer X_WORD____X ^---- selection Deleting to the right: v--------- pointer X____WORD_X ^--------- selection > A larger issue is that we haven't heard from Pat, who has been > helping git-gui.sh maintenance, for quite a while, so we'd need to > find a volunteer to act as a replacement maintainer. If you are > willing to, that would be great ;-) Sure.
Ismael Luceno <ismael@iodev.co.uk> writes: >> .... I am not sure if going >> back by one character from where the current insertion cursor is and >> further go back to the wordstart would give the beginning of the >> word to the left of the cursor, though. > > ... > Current implementation doesn't behave correctly when there's multiple > spaces: In short, I wondered if it is correct, and you say it is not correct. I would be surprised if git-gui were the only program that implemented an editor-like feature using tcl/tk, and none of the other editor implementations using tcl/tk had such an industry standard "delete previous word". Perhaps you can see if there is already a correct implementation of the feature this patch can borrow from? >> A larger issue is that we haven't heard from Pat, who has been >> helping git-gui.sh maintenance, for quite a while, so we'd need to >> find a volunteer to act as a replacement maintainer. If you are >> willing to, that would be great ;-) > > Sure.
On 21/Feb/2019 12:47, Junio C Hamano wrote: > Ismael Luceno <ismael@iodev.co.uk> writes: > > >> .... I am not sure if going > >> back by one character from where the current insertion cursor is and > >> further go back to the wordstart would give the beginning of the > >> word to the left of the cursor, though. > > > > ... > > Current implementation doesn't behave correctly when there's multiple > > spaces: > > In short, I wondered if it is correct, and you say it is not correct. It's better than nothing, and the behavior isn't harmful. > I would be surprised if git-gui were the only program that > implemented an editor-like feature using tcl/tk, and none of the > other editor implementations using tcl/tk had such an industry > standard "delete previous word". Perhaps you can see if there > is already a correct implementation of the feature this patch can > borrow from? I couldn't find such implementation yet. I'll come up with an improved version if there's nothing else, but in the meanwhile it's worth to have this one merged.
diff --git a/git-gui.sh b/git-gui.sh index 5bc21b878d41..e00d9a345294 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -3788,6 +3788,8 @@ bind $ui_comm <$M1B-Key-KP_Subtract> {show_less_context;break} bind $ui_comm <$M1B-Key-equal> {show_more_context;break} bind $ui_comm <$M1B-Key-plus> {show_more_context;break} bind $ui_comm <$M1B-Key-KP_Add> {show_more_context;break} +bind $ui_comm <Control-Key-BackSpace> {%W delete {insert -1 chars wordstart} insert;break} +bind $ui_comm <Control-Key-Delete> {%W delete insert {insert wordend};break} bind $ui_diff <$M1B-Key-x> {tk_textCopy %W;break} bind $ui_diff <$M1B-Key-X> {tk_textCopy %W;break}
- Control+BackSpace: Delete word to the left of the cursor. - Control+Delete : Delete word to the right of the cursor. Originally introduced by BRIEF and Turbo Vision between 1985 and 1992, they were adopted by most CUA-Compliant UIs, including those of: OS/2, Windows, Mac OS, Qt, GTK, Open/Libre Office, Gecko, and GNU Emacs. Signed-off-by: Ismael Luceno <ismael@iodev.co.uk> --- Notes: Changes since v1: - Improved commit message. git-gui.sh | 2 ++ 1 file changed, 2 insertions(+)