From d3f1e9905efff8404d9291244a12df9134aba848 Mon Sep 17 00:00:00 2001 From: bashbunni Date: Mon, 11 Apr 2022 13:30:33 -0700 Subject: [PATCH 1/5] fix: replace keySP with working KeySpace --- key.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/key.go b/key.go index a0ceea6bbe..8e7b8df1f9 100644 --- a/key.go +++ b/key.go @@ -137,7 +137,6 @@ const ( keyGS KeyType = 29 // group separator keyRS KeyType = 30 // record separator keyUS KeyType = 31 // unit separator - keySP KeyType = 32 // space keyDEL KeyType = 127 // delete. on most systems this is mapped to backspace, I hear ) @@ -148,7 +147,6 @@ const ( KeyEnter KeyType = keyCR KeyBackspace KeyType = keyDEL KeyTab KeyType = keyHT - KeySpace KeyType = keySP KeyEsc KeyType = keyESC KeyEscape KeyType = keyESC @@ -200,6 +198,7 @@ const ( KeyPgUp KeyPgDown KeyDelete + KeySpace KeyF1 KeyF2 KeyF3 @@ -256,13 +255,13 @@ var keyNames = map[KeyType]string{ keyGS: "ctrl+]", keyRS: "ctrl+^", keyUS: "ctrl+_", - keySP: "space", keyDEL: "backspace", KeyRunes: "runes", KeyUp: "up", KeyDown: "down", KeyRight: "right", + KeySpace: " ", KeyLeft: "left", KeyShiftTab: "shift+tab", KeyHome: "home", From d0951f5f0ed8dbe4eb11bbca8186e0c29c373643 Mon Sep 17 00:00:00 2001 From: bashbunni Date: Mon, 11 Apr 2022 13:30:54 -0700 Subject: [PATCH 2/5] test: update test to meet new reqs --- key_test.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/key_test.go b/key_test.go index 931fa84d05..d129bf48b2 100644 --- a/key_test.go +++ b/key_test.go @@ -8,7 +8,7 @@ import ( func TestKeyString(t *testing.T) { t.Run("alt+space", func(t *testing.T) { if got := KeyMsg(Key{ - Type: keySP, + Type: KeySpace, Alt: true, }).String(); got != "alt+space" { t.Fatalf(`expected a "alt+space", got %q`, got) @@ -35,8 +35,8 @@ func TestKeyString(t *testing.T) { func TestKeyTypeString(t *testing.T) { t.Run("space", func(t *testing.T) { - if got := keySP.String(); got != "space" { - t.Fatalf(`expected a "space", got %q`, got) + if got := KeySpace.String(); got != " " { + t.Fatalf(`expected a " ", got %q`, got) } }) From 240f1fb3a1330aef2843ad9217f98e336b41ea71 Mon Sep 17 00:00:00 2001 From: bashbunni Date: Mon, 11 Apr 2022 13:39:48 -0700 Subject: [PATCH 3/5] fix: fix test looking for 'space' --- key_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/key_test.go b/key_test.go index d129bf48b2..511ae75b76 100644 --- a/key_test.go +++ b/key_test.go @@ -10,8 +10,8 @@ func TestKeyString(t *testing.T) { if got := KeyMsg(Key{ Type: KeySpace, Alt: true, - }).String(); got != "alt+space" { - t.Fatalf(`expected a "alt+space", got %q`, got) + }).String(); got != "alt+ " { + t.Fatalf(`expected a "alt+ ", got %q`, got) } }) From caf1969e3e0b0b33d7289ffef27787e240ed08b0 Mon Sep 17 00:00:00 2001 From: Christian Rocha Date: Tue, 12 Apr 2022 11:03:29 -0400 Subject: [PATCH 4/5] fix(keys): set type to KeySpace when sending a space --- key.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/key.go b/key.go index 8e7b8df1f9..23e7c46411 100644 --- a/key.go +++ b/key.go @@ -479,7 +479,15 @@ func readInputs(input io.Reader) ([]Msg, error) { }, nil } - // Welp, it's just a regular, ol' single rune + // If it's a space, override the type with KeySpace (but still include the + // rune). + if len(runes) == 1 && runes[0] == ' ' { + return []Msg{ + KeyMsg(Key{Type: KeySpace, Runes: runes}), + }, nil + } + + // Welp, it's just a regular, ol' single rune. return []Msg{ KeyMsg(Key{Type: KeyRunes, Runes: runes}), }, nil From d5f2d23dcff86fa64f88c8752340ef5549e13dd9 Mon Sep 17 00:00:00 2001 From: Christian Rocha Date: Tue, 12 Apr 2022 11:07:01 -0400 Subject: [PATCH 5/5] docs(keys): comments --- key.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/key.go b/key.go index 23e7c46411..c5b04e9b1e 100644 --- a/key.go +++ b/key.go @@ -221,8 +221,9 @@ const ( KeyF20 ) -// Mapping for control keys to friendly consts. +// Mappings for control keys and other special keys to friendly consts. var keyNames = map[KeyType]string{ + // Control keys. keyNUL: "ctrl+@", // also ctrl+` keySOH: "ctrl+a", keySTX: "ctrl+b", @@ -257,11 +258,12 @@ var keyNames = map[KeyType]string{ keyUS: "ctrl+_", keyDEL: "backspace", + // Other keys. KeyRunes: "runes", KeyUp: "up", KeyDown: "down", KeyRight: "right", - KeySpace: " ", + KeySpace: " ", // for backwards compatibility KeyLeft: "left", KeyShiftTab: "shift+tab", KeyHome: "home",