Conversation
Summary: - Group A: docs/design/VIM_LINE_SPLIT.md documents the deferred 3-pass split. - Group B: module doc expanded. - Group C: dispatch_motion extracted; applied to handle_normal only (Visual kept explicit arms to preserve the absence of ^/% support — flagged as deferred behavior change). - Group D: let-else at move_to_matching_bracket. - Group E: Mode / Operator → pub(crate); pub fn mode() → #[cfg(test)] fn mode() since tests were the only callers.
Code Review: Audit vim lineOverviewThis PR executes a well-documented modularisation of
The PR implements passes 1 & 2 of a three-pass plan and deliberately defers per-mode handler extraction to a future PR. The overall direction is good. What Works Well
Concerns1. Verify public API breakage (action required)Three items changed visibility and may break downstream crates:
The design doc says these were never part of the external contract, but please verify against 2. Struct fields are now visible to all sibling modules (
|
| Area | Verdict |
|---|---|
| Refactor scope | ✅ Matches plan; well-scoped |
| Code quality | ✅ Clean separation of concerns, good docs |
| Correctness | ✅ No regressions detected |
| Public API | lib.rs + downstream build |
| Test coverage | ✅ All tests preserved; minor gap on mismatched % |
| Performance | ✅ Neutral — no new allocations |
| Security | ✅ UTF-8 boundary checks preserved |
The core refactor is solid. The main ask is to verify the visibility changes don't silently break anything outside this crate. Once that's confirmed, this looks ready to merge.
No description provided.