Fix NextWord action in Editor when line ends with word boundaries

This commit is contained in:
Héctor Ramón Jiménez 2023-09-16 16:07:26 +02:00
parent 797f1c7941
commit 4aacd436c3
No known key found for this signature in database
GPG key ID: 7CC46565708259A7

View file

@ -613,14 +613,14 @@ impl Edit for Editor {
Action::NextWord => {
let line: &mut BufferLine = &mut self.buffer.lines[self.cursor.line];
if self.cursor.index < line.text().len() {
for (i, word) in line.text().unicode_word_indices() {
let i = i + word.len();
if i > self.cursor.index {
self.cursor.index = i;
self.buffer.set_redraw(true);
break;
}
}
self.cursor.index = line
.text()
.unicode_word_indices()
.map(|(i, word)| i + word.len())
.find(|&i| i > self.cursor.index)
.unwrap_or(line.text().len());
self.buffer.set_redraw(true);
} else if self.cursor.line + 1 < self.buffer.lines.len() {
self.cursor.line += 1;
self.cursor.index = 0;