mirror of
https://github.com/Maks1mS/bubbles.git
synced 2025-03-08 18:13:44 +03:00
fix: edge cases with {d,c}iw and {d,c}aw
This commit is contained in:
parent
715108b08b
commit
0f1a912f12
@ -246,6 +246,10 @@ func (m *Model) normalUpdate(msg tea.Msg) tea.Cmd {
|
||||
if len(msg.Runes) <= 0 {
|
||||
m.command = &NormalCommand{}
|
||||
}
|
||||
if msg.Runes[0] == 'w' || msg.Runes[0] == 'W' {
|
||||
m.command.Range = m.findPairRange(msg.Runes[0])
|
||||
return executeCmd(*m.command)
|
||||
}
|
||||
switch m.command.Buffer {
|
||||
case "a":
|
||||
m.command.Range = m.findPairRange(msg.Runes[0])
|
||||
@ -554,10 +558,10 @@ func (m *Model) findCharRight(r rune) Position {
|
||||
col := m.col
|
||||
|
||||
for col < len(m.value[m.row]) {
|
||||
col++
|
||||
if m.value[m.row][col] == r {
|
||||
return Position{m.row, col}
|
||||
}
|
||||
col++
|
||||
}
|
||||
return Position{m.row, m.col}
|
||||
}
|
||||
@ -604,6 +608,13 @@ func (m *Model) findWordLeft(count int, ignorePunctuation bool) Position {
|
||||
wordBreak = isWordBreak
|
||||
}
|
||||
|
||||
if count == 0 {
|
||||
if wordBreak(m.value[m.row][m.col-1]) {
|
||||
return Position{m.row, m.col}
|
||||
}
|
||||
count = 1
|
||||
}
|
||||
|
||||
row, col := m.row, m.col
|
||||
|
||||
for count > 0 {
|
||||
|
Loading…
Reference in New Issue
Block a user