From 1a5f380c00d218712dce1225d7948e3d81cda248 Mon Sep 17 00:00:00 2001 From: Jesse Duffield Date: Fri, 2 Apr 2021 15:08:15 +1100 Subject: support alt-enter for inserting newline when typing commit message within the app --- vendor/github.com/jesseduffield/gocui/edit.go | 18 ++++++++---------- vendor/github.com/jesseduffield/gocui/keybinding.go | 3 ++- vendor/github.com/jesseduffield/gocui/tcell_driver.go | 7 +++++++ vendor/modules.txt | 2 +- 4 files changed, 18 insertions(+), 12 deletions(-) (limited to 'vendor') diff --git a/vendor/github.com/jesseduffield/gocui/edit.go b/vendor/github.com/jesseduffield/gocui/edit.go index f5844da47..f30d4bf0d 100644 --- a/vendor/github.com/jesseduffield/gocui/edit.go +++ b/vendor/github.com/jesseduffield/gocui/edit.go @@ -5,6 +5,8 @@ package gocui import ( + "unicode" + "github.com/go-errors/errors" "github.com/mattn/go-runewidth" @@ -53,12 +55,8 @@ func simpleEditor(v *View, key Key, ch rune, mod Modifier) bool { v.MoveCursor(-1, 0, false) case key == KeyArrowRight: v.MoveCursor(1, 0, false) - case key == KeyTab: + case key == KeyEnter: v.EditNewLine() - case key == KeySpace: - v.EditWrite(' ') - case key == KeyInsert: - v.Overwrite = !v.Overwrite case key == KeyCtrlU: v.EditDeleteToStartOfLine() case key == KeyCtrlA: @@ -66,12 +64,12 @@ func simpleEditor(v *View, key Key, ch rune, mod Modifier) bool { case key == KeyCtrlE: v.EditGotoToEndOfLine() matched = true + + // TODO: see if we need all three of these conditions: maybe the final one is sufficient + case ch != 0 && mod == 0 && unicode.IsPrint(ch): + v.EditWrite(ch) default: - if ch != 0 && mod == 0 { - v.EditWrite(ch) - } else { - matched = false - } + matched = false } return matched diff --git a/vendor/github.com/jesseduffield/gocui/keybinding.go b/vendor/github.com/jesseduffield/gocui/keybinding.go index 813ebae70..95857656e 100644 --- a/vendor/github.com/jesseduffield/gocui/keybinding.go +++ b/vendor/github.com/jesseduffield/gocui/keybinding.go @@ -297,7 +297,8 @@ const ( // In tcell, these are not keys per se. But in gocui we have them // mapped to the keys so we have to use placeholder keys. - MouseLeft = Key(tcell.KeyF63) // arbitrary assignments + KeyAltEnter = Key(tcell.KeyF64) // arbitrary assignments + MouseLeft = Key(tcell.KeyF63) MouseRight = Key(tcell.KeyF62) MouseMiddle = Key(tcell.KeyF61) MouseRelease = Key(tcell.KeyF60) diff --git a/vendor/github.com/jesseduffield/gocui/tcell_driver.go b/vendor/github.com/jesseduffield/gocui/tcell_driver.go index a7faed903..1bc4c1217 100644 --- a/vendor/github.com/jesseduffield/gocui/tcell_driver.go +++ b/vendor/github.com/jesseduffield/gocui/tcell_driver.go @@ -151,7 +151,14 @@ func pollEvent() GocuiEvent { // - shift - will be translated to the final code of rune // - ctrl - is translated in the key mod = 0 + } else if mod == tcell.ModAlt && k == tcell.KeyEnter { + // for the sake of convenience I'm having a KeyAltEnter key. I will likely + // regret this laziness in the future. We're arbitrarily mapping that to tcell's + // KeyF64. + mod = 0 + k = tcell.KeyF64 } + return GocuiEvent{ Type: eventKey, Key: Key(k), diff --git a/vendor/modules.txt b/vendor/modules.txt index 23dfa0005..6bfcac748 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -149,7 +149,7 @@ github.com/jesseduffield/go-git/v5/utils/merkletrie/filesystem github.com/jesseduffield/go-git/v5/utils/merkletrie/index github.com/jesseduffield/go-git/v5/utils/merkletrie/internal/frame github.com/jesseduffield/go-git/v5/utils/merkletrie/noder -# github.com/jesseduffield/gocui v0.3.1-0.20210402033412-1238f910f001 +# github.com/jesseduffield/gocui v0.3.1-0.20210402040718-77a1b9631715 ## explicit github.com/jesseduffield/gocui # github.com/jesseduffield/termbox-go v0.0.0-20200823212418-a2289ed6aafe -- cgit v1.2.3