Drop naked returns in textinput model

This actually uncovered a few ineffective assignments, particularly
in deleteWordRight.
This commit is contained in:
Christian Muehlhaeuser 2021-03-12 01:37:19 +01:00 committed by Christian Rocha
parent a0d7cb77a1
commit b2f42066a2

View File

@ -202,7 +202,7 @@ func (m *Model) Reset() bool {
// handle a clipboard paste event, if supported. Returns whether or not the // handle a clipboard paste event, if supported. Returns whether or not the
// cursor blink should be reset. // cursor blink should be reset.
func (m *Model) handlePaste(v string) (blink bool) { func (m *Model) handlePaste(v string) bool {
paste := []rune(v) paste := []rune(v)
var availSpace int var availSpace int
@ -212,7 +212,7 @@ func (m *Model) handlePaste(v string) (blink bool) {
// If the char limit's been reached cancel // If the char limit's been reached cancel
if m.CharLimit > 0 && availSpace <= 0 { if m.CharLimit > 0 && availSpace <= 0 {
return return false
} }
// If there's not enough space to paste the whole thing cut the pasted // If there's not enough space to paste the whole thing cut the pasted
@ -313,13 +313,13 @@ func (m *Model) colorPlaceholder(s string) string {
// deleteWordLeft deletes the word left to the cursor. Returns whether or not // deleteWordLeft deletes the word left to the cursor. Returns whether or not
// the cursor blink should be reset. // the cursor blink should be reset.
func (m *Model) deleteWordLeft() (blink bool) { func (m *Model) deleteWordLeft() bool {
if m.pos == 0 || len(m.value) == 0 { if m.pos == 0 || len(m.value) == 0 {
return return false
} }
i := m.pos i := m.pos
blink = m.SetCursor(m.pos - 1) blink := m.SetCursor(m.pos - 1)
for unicode.IsSpace(m.value[m.pos]) { for unicode.IsSpace(m.value[m.pos]) {
// ignore series of whitespace before cursor // ignore series of whitespace before cursor
blink = m.SetCursor(m.pos - 1) blink = m.SetCursor(m.pos - 1)
@ -343,26 +343,26 @@ func (m *Model) deleteWordLeft() (blink bool) {
m.value = append(m.value[:m.pos], m.value[i:]...) m.value = append(m.value[:m.pos], m.value[i:]...)
} }
return return blink
} }
// deleteWordRight deletes the word right to the cursor. Returns whether or not // deleteWordRight deletes the word right to the cursor. Returns whether or not
// the cursor blink should be reset. // the cursor blink should be reset.
func (m *Model) deleteWordRight() (blink bool) { func (m *Model) deleteWordRight() bool {
if m.pos >= len(m.value) || len(m.value) == 0 { if m.pos >= len(m.value) || len(m.value) == 0 {
return return false
} }
i := m.pos i := m.pos
blink = m.SetCursor(m.pos + 1) m.SetCursor(m.pos + 1)
for unicode.IsSpace(m.value[m.pos]) { for unicode.IsSpace(m.value[m.pos]) {
// ignore series of whitespace after cursor // ignore series of whitespace after cursor
blink = m.SetCursor(m.pos + 1) m.SetCursor(m.pos + 1)
} }
for m.pos < len(m.value) { for m.pos < len(m.value) {
if !unicode.IsSpace(m.value[m.pos]) { if !unicode.IsSpace(m.value[m.pos]) {
blink = m.SetCursor(m.pos + 1) m.SetCursor(m.pos + 1)
} else { } else {
break break
} }
@ -373,20 +373,19 @@ func (m *Model) deleteWordRight() (blink bool) {
} else { } else {
m.value = append(m.value[:i], m.value[m.pos:]...) m.value = append(m.value[:i], m.value[m.pos:]...)
} }
blink = m.SetCursor(i)
return return m.SetCursor(i)
} }
// wordLeft moves the cursor one word to the left. Returns whether or not the // wordLeft moves the cursor one word to the left. Returns whether or not the
// cursor blink should be reset. // cursor blink should be reset.
func (m *Model) wordLeft() (blink bool) { func (m *Model) wordLeft() bool {
if m.pos == 0 || len(m.value) == 0 { if m.pos == 0 || len(m.value) == 0 {
return return false
} }
blink := false
i := m.pos - 1 i := m.pos - 1
for i >= 0 { for i >= 0 {
if unicode.IsSpace(m.value[i]) { if unicode.IsSpace(m.value[i]) {
blink = m.SetCursor(m.pos - 1) blink = m.SetCursor(m.pos - 1)
@ -405,18 +404,18 @@ func (m *Model) wordLeft() (blink bool) {
} }
} }
return return blink
} }
// wordRight moves the cursor one word to the right. Returns whether or not the // wordRight moves the cursor one word to the right. Returns whether or not the
// cursor blink should be reset. // cursor blink should be reset.
func (m *Model) wordRight() (blink bool) { func (m *Model) wordRight() bool {
if m.pos >= len(m.value) || len(m.value) == 0 { if m.pos >= len(m.value) || len(m.value) == 0 {
return return false
} }
blink := false
i := m.pos i := m.pos
for i < len(m.value) { for i < len(m.value) {
if unicode.IsSpace(m.value[i]) { if unicode.IsSpace(m.value[i]) {
blink = m.SetCursor(m.pos + 1) blink = m.SetCursor(m.pos + 1)
@ -435,7 +434,7 @@ func (m *Model) wordRight() (blink bool) {
} }
} }
return return blink
} }
func (m Model) echoTransform(v string) string { func (m Model) echoTransform(v string) string {