git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2] git-gui: add hotkey to toggle "Amend Last Commit" radio selector

From
Bert Wesarg <bert.wesarg@googlemail.com>
Date
Sep 5, 2019, 20:14 UTC
Message-ID
<CAKPyHN2EFKnkgAoCCJ4zdO7hvMsATuSweraxkR_KJZUhuzizPA@mail.gmail.com>
In-Reply-To
<20190904175943.11924-1-birger.sp@gmail.com>

On Wed, Sep 4, 2019 at 8:00 PM Birger Skogeng Pedersen <birger.sp@gmail.com> wrote:

Show 33 quoted lines
>
> Selecting whether to do a "New Commit" or "Amend Last Commit" does not have
> a hotkey.
>
> With this patch, the user may toggle between the two options with
> CTRL/CMD+e.
>
> Signed-off-by: Birger Skogeng Pedersen <birger.sp@gmail.com>
> Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
> ---
>  git-gui.sh | 40 +++++++++++++++++++++++++++++++++++-----
>  1 file changed, 35 insertions(+), 5 deletions(-)
>
> diff --git a/git-gui.sh b/git-gui.sh
> index 5bc21b8..47c5db0 100755
> --- a/git-gui.sh
> +++ b/git-gui.sh
> @@ -1445,7 +1445,7 @@ proc force_amend {} {
>         set commit_type $newType
>
>         set selected_commit_type amend
> -       do_select_commit_type
> +       ui_select_commit_type
>  }
>
>  proc rescan {after {honor_trustmtime 1}} {
> @@ -2640,6 +2640,16 @@ proc show_less_context {} {
>         }
>  }
>
> +proc toggle_commit_type {} {
> +       global selected_commit_type
> +       if {[string match amend* $selected_commit_type]} {

only $commit_type has multiple incarnations of amend, thus this should have been $commit_type here.

Though I posted new patches which convert it first to b a checkbutton and than addedyour keybinding patch on top of it.

Bert
Show 81 quoted lines
> +               set selected_commit_type new
> +       } else {
> +               set selected_commit_type amend
> +       }
> +       ui_select_commit_type
> +}
> +
>  ######################################################################
>  ##
>  ## ui construction
> @@ -2824,13 +2834,31 @@ proc commit_btn_caption {} {
>         }
>  }
>
> +proc ui_select_commit_type {} {
> +       global selected_commit_type
> +       global ui_commit_type_commit ui_commit_type_amend
> +
> +       do_select_commit_type
> +       if {$selected_commit_type eq {new}} {
> +               .mbar.commit entryconf [mc "New Commit"] \
> +                       -accelerator {}
> +               .mbar.commit entryconf [mc "Amend Last Commit"] \
> +                       -accelerator $::M1T-E
> +       } elseif {$selected_commit_type eq {amend}} {
> +               .mbar.commit entryconf [mc "New Commit"] \
> +                       -accelerator $::M1T-E
> +               .mbar.commit entryconf [mc "Amend Last Commit"] \
> +                       -accelerator {}
> +       }
> +}
> +
>  if {[is_enabled multicommit] || [is_enabled singlecommit]} {
>         menu .mbar.commit
>
>         if {![is_enabled nocommit]} {
>                 .mbar.commit add radiobutton \
>                         -label [mc "New Commit"] \
> -                       -command do_select_commit_type \
> +                       -command ui_select_commit_type \
>                         -variable selected_commit_type \
>                         -value new
>                 lappend disable_on_lock \
> @@ -2838,7 +2866,8 @@ if {[is_enabled multicommit] || [is_enabled singlecommit]} {
>
>                 .mbar.commit add radiobutton \
>                         -label [mc "Amend Last Commit"] \
> -                       -command do_select_commit_type \
> +                       -accelerator $M1T-E \
> +                       -command ui_select_commit_type \
>                         -variable selected_commit_type \
>                         -value amend
>                 lappend disable_on_lock \
> @@ -3315,14 +3344,14 @@ set ui_coml .vpane.lower.commarea.buffer.header.l
>  if {![is_enabled nocommit]} {
>         ${NS}::radiobutton .vpane.lower.commarea.buffer.header.new \
>                 -text [mc "New Commit"] \
> -               -command do_select_commit_type \
> +               -command ui_select_commit_type \
>                 -variable selected_commit_type \
>                 -value new
>         lappend disable_on_lock \
>                 [list .vpane.lower.commarea.buffer.header.new conf -state]
>         ${NS}::radiobutton .vpane.lower.commarea.buffer.header.amend \
>                 -text [mc "Amend Last Commit"] \
> -               -command do_select_commit_type \
> +               -command ui_select_commit_type \
>                 -variable selected_commit_type \
>                 -value amend
>         lappend disable_on_lock \
> @@ -3843,6 +3872,7 @@ bind .   <$M1B-Key-equal> {show_more_context;break}
>  bind .   <$M1B-Key-plus> {show_more_context;break}
>  bind .   <$M1B-Key-KP_Add> {show_more_context;break}
>  bind .   <$M1B-Key-Return> do_commit
> +bind .   <$M1B-Key-e> toggle_commit_type
>  foreach i [list $ui_index $ui_workdir] {
>         bind $i <Button-1>       { toggle_or_diff click %W %x %y; break }
>         bind $i <$M1B-Button-1>  { add_one_to_selection %W %x %y; break }
> --
> 2.21.0.windows.1
>
Previous: Birger Skogeng PedersenNext: Bert Wesarg
Message 4 of 5 in “Re: [PATCH] Add hotkey to toggle "Amend Last Commit" radio selector”
  1. Birger Skogeng PedersenSep 4, 2019
  2. Pratyush YadavSep 4, 2019
  3. git-gui: add hotkey to toggle "Amend Last Commit" radio selectorBirger Skogeng Pedersen, Sep 4, 2019
  4. Bert WesargSep 5, 2019
  5. Bert WesargSep 4, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.