Component 5af11fe..c35fdac (pushed): a press opens its block with the caret on the pressed character; a secondary press moves the caret and emits DocumentEvent::Pointed. Three review rounds failed; the round-3 findings are fixed with the reviewer's probes as regressions, unreviewed. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
20 lines
4.6 KiB
Markdown
20 lines
4.6 KiB
Markdown
FAIL
|
|
|
|
1. Ely-GPUI-Components/src/documents/tree/sources.rs:105 — Continued blockquotes do not map back through their quote prefixes. With `> alpha\n> beta`, a right press on the rendered `e` of `beta` moves to byte 2 (`a` in `alpha`), instead of byte 11. `align` skips the newline but cannot cross the following `>`, then silently uses the leaf start. Preserve the source positions of continuation lines, including their container prefixes. Reproduced by `review_quote_ui_press_maps_continuation` in `.work/R4.5-r1-review/ui-probes.log`.
|
|
|
|
2. Ely-GPUI-Components/src/documents/tree/sources.rs:97 — Alignment returns before skipping source characters that precede the requested glyph. In `a \*star\* z`, the displayed first `*` maps to byte 2 (the backslash), not byte 3. In ``a ` xy ` z``, the displayed `x` maps to byte 3 (the stripped space), not byte 4. Normalize the source position before returning the requested character; cover the escaped glyph and first character of a trimmed code span, rather than only characters after them. Both exact-offset probes fail in `ui-probes.log`.
|
|
|
|
3. Ely-GPUI-Components/src/documents/tree/sources.rs:31 — `code_from` only handles code whose complete displayed body follows the first newline verbatim. Ordinary indented code therefore has no character mapping. For ` alpha\n beta\n`, pressing the rendered `e` of `beta` should land at byte 15; the actual left press opens at byte 18 and the right press reports byte 0. Track code positions through removed indentation instead of dropping to `Place::Block`. Both mouse-path probes fail; equivalent fenced-code controls pass.
|
|
|
|
4. Ely-GPUI-Components/src/documents/tree/mod.rs:418 — The new source metadata trusts positions on alert text that `tree/blocks.rs::marker` has already shortened without updating its position. For `> [!NOTE]\n> alpha beta`, a right press on `b` reports byte 2, inside `[!NOTE]`, instead of byte 18. Preserve or adjust source positions when removing the alert marker before recording `Inline.sources`. Both the mapping probe and `review_alert_ui_press_maps_body` reproduce this.
|
|
|
|
5. Ely-GPUI-Components/src/documents/tree/mod.rs:366 — HTML blocks are drawn through `html_block_text`, which never populates `Inline.sources`; their new text-press handler consequently has no source location. For `<div>alpha beta</div>\n`, pressing the rendered `e` should land at byte 12, but the left press opens at byte 21 and the right press reports byte 0. Carry source spans through HTML text extraction and normalization. Both real mouse-press probes fail in `ui-probes.log`.
|
|
|
|
6. Ely-GPUI-Components/src/documents/document/visual.rs:116; src/documents/render.rs:413 — Raw link definitions and front matter bypass character hit testing entirely. Right-pressing byte 10 of the displayed `[ref]: https://ely.dev` reports byte 0. Pressing `v` in the displayed front matter `---\ntitle: value\n---\n` should land at byte 11, but reports byte 0 on right press and opens at byte 20 on left press. Route these literal text renderings through `TextLayout` hit testing with their source offsets, including the removed front-matter fence. The definition and front-matter probes reproduce the failures.
|
|
|
|
7. Ely-GPUI-Components/src/documents/document/point.rs:124 — Focusing the document after a secondary press triggers `focused`, which automatically opens an empty visual document. A right press in an initially closed empty document emits `Pointed` and then creates and focuses a `TextInput`, violating the explicit requirement that a right press open no block. Keep secondary pointing from triggering this auto-open path. `review_empty_closed_document_right_press_stays_closed` verifies that the document starts closed and fails after the actual right press.
|
|
|
|
8. Ely-GPUI-Components/src/documents/document/point.rs:106 — Target kind and context are captured before committing the open block and are not reconciled with the reparsed document. Open the first paragraph of `First.\n\nalpha beta\n`, replace it with an opening code fence, then right-press the rendered `e` in the second paragraph. The caret correctly moves to byte 12 of the resulting code block, but the event says `Paragraph` and `in_code: false`, giving the owner the wrong menu context. Resolve the surviving target against the committed parse, or reject a target invalidated by that edit. `review_right_press_uses_kind_after_commit` reproduces the mismatch.
|
|
|
|
9. Ely-GPUI-Components/src/documents/tree/sources.rs:73 — The added comment “Source byte under drawn byte `at`, if a piece holds it.” contains 11 words, exceeding the project's explicit ten-word limit. Shorten it to at most ten words; the added-comment scan records this in `.work/R4.5-r1-review/checks.log`.
|