(input: string, key: Key)
| 449 | } |
| 450 | |
| 451 | private handleMetaKey(input: string, key: Key): boolean { |
| 452 | if (key.backspace) { |
| 453 | this.deleteLineBackward(); |
| 454 | return true; |
| 455 | } |
| 456 | if (key.delete) { |
| 457 | this.deleteLineForward(); |
| 458 | return true; |
| 459 | } |
| 460 | if (key.leftArrow) { |
| 461 | this.moveWordLeft(); |
| 462 | return true; |
| 463 | } |
| 464 | if (key.rightArrow) { |
| 465 | this.moveWordRight(); |
| 466 | return true; |
| 467 | } |
| 468 | // Handle option+left/right as characters (on Mac, option+arrow sends character codes) |
| 469 | if (input === "b") { |
| 470 | this.moveWordLeft(); |
| 471 | return true; |
| 472 | } |
| 473 | if (input === "f") { |
| 474 | this.moveWordRight(); |
| 475 | return true; |
| 476 | } |
| 477 | return false; |
| 478 | } |
| 479 | |
| 480 | private handleArrowKeys(key: Key): boolean { |
| 481 | if (key.leftArrow && !key.meta) { |
no test coverage detected