From 938844c326fdc2efb65b45c2c31e6dc30d9dbc1f Mon Sep 17 00:00:00 2001 From: Tony Blyler Date: Tue, 12 Jun 2018 16:59:50 -0400 Subject: [PATCH] Add support for ctrlW --- main.go | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index fb0f306..d7d3fba 100644 --- a/main.go +++ b/main.go @@ -9,6 +9,7 @@ import ( "io" "net" "os" + "unicode" "github.com/jroimartin/gocui" "gitlab.com/tblyler/ep2pchat/client" @@ -128,7 +129,27 @@ func main() { return nil }) - gui.SetKeybinding("", gocui.KeyCtrlL, gocui.ModNone, func(g *gocui.Gui, v *gocui.View) error { + gui.SetKeybinding("input", gocui.KeyCtrlW, gocui.ModNone, func(g *gocui.Gui, v *gocui.View) error { + buffer := v.Buffer() + foundFirstSpace := false + foundFirstChar := false + for i := len(buffer) - 1; i >= 0; i-- { + if unicode.IsSpace(rune(buffer[i])) { + if foundFirstSpace && foundFirstChar { + break + } + + foundFirstSpace = true + } else { + foundFirstChar = true + } + + v.EditDelete(true) + } + + return nil + }) + gui.SetKeybinding("input", gocui.KeyCtrlL, gocui.ModNone, func(g *gocui.Gui, v *gocui.View) error { chat, err := g.View("chat") if err != nil { return nil