()
| 506 | } |
| 507 | |
| 508 | downLogicalLine(): Cursor { |
| 509 | const { start: currentStart, end: currentEnd } = this.getLogicalLineBounds() |
| 510 | |
| 511 | // At last line - stay at end |
| 512 | if (currentEnd >= this.text.length) { |
| 513 | return new Cursor(this.measuredText, this.text.length, 0) |
| 514 | } |
| 515 | |
| 516 | // Calculate target column position |
| 517 | const currentColumn = this.offset - currentStart |
| 518 | |
| 519 | // Find next line bounds |
| 520 | const nextLineStart = currentEnd + 1 |
| 521 | const nextLineEnd = this.findLogicalLineEnd(nextLineStart) |
| 522 | |
| 523 | return this.createCursorWithColumn( |
| 524 | nextLineStart, |
| 525 | nextLineEnd, |
| 526 | currentColumn, |
| 527 | ) |
| 528 | } |
| 529 | |
| 530 | // Vim word vs WORD movements: |
| 531 | // - word (lowercase w/b/e): sequences of letters, digits, and underscores |
no test coverage detected