Four review findings + a cleanup bundle. [P1] Wire flattener was O(spans²) and ran over the WHOLE buffer (the file-style summary uses a whole-buffer viewport, not the visible one). Replaced the per-interval full scan with an ordered active-set event sweep (activate on start, expire on end, fold the active set) — linear in practice. Added full_buffer_summary_scales_on_large_grammar_file (1500-line rust) as the perf gate. [P2] _parse_now used the empty alias map from make_request while _dispatch snapshotted the registry map, so a `py` fence injected async but not sync. Snapshot aliases on both paths; pinned by sync_parse_now_resolves_alias. [P2] The multi-range inline test used a one-line paragraph, whose block inline node has no named children (link/emphasis are child-grammar structures) — one range, so it couldn't falsify multi-range. Replaced with a multi-line blockquote whose inline node carries a named block_continuation: content_node_ranges now asserts >1 collected range and emphasis parses on both lines. [P2] The layer backstop dropped regions silently; the framing requires a surfaced warning. run_parse now sets ParseTreeBundle::injection_capped; syntax.lua's settle tick raises it once per buffer via pmacs.error (_injection_capped). Added injection_layer_cap_surfaces_and_preserves_root (drives >4096 fences, asserts the flag + bounded count + intact root). Cleanup: - The GPU acceptance test now drives the real StyleSpans full-frame transform (spans_from_segments, extracted from replace_style_spans) instead of a hand-rolled sort. - content_node_ranges excludes NAMED children (documented as a round-1 refinement); framing mechanic #3 / Q#IJ5 updated to match. - parse_duration doc now says root parse; the markdown entry no longer describes inline as unhighlighted/future. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YJ9FQ832QwftJXCD9LeFan |
||
|---|---|---|
| .. | ||
| async.lua | ||
| autosave.lua | ||
| comment.lua | ||
| compile.lua | ||
| completion.lua | ||
| desktop.lua | ||
| editops.lua | ||
| fs.lua | ||
| indent.lua | ||
| killring.lua | ||
| listview.lua | ||
| lsp.lua | ||
| mcp.lua | ||
| pair.lua | ||
| recentf.lua | ||
| saveplace.lua | ||
| syntax.lua | ||