fix(documenteditor): gekoppelde weergave aanklikbaar + typvertraging weg (#2709, #2710, #2711) #2712

Merged
brenno merged 4 commits from fix/document-editor-prestaties into main 2026-11-02 22:05:08 +00:00
Owner

Summary

  • #2709 — Een ocideck:view-tabel deed niets bij aanklikken (read-only per D2, maar zonder uitleg). Een tik opent nu een dialoog: ga naar de brontabel, of koppel los als momentopname.
  • #2710 — OciMarkedTable decodéérde zijn tabel bij élke toegang tot decodedRows/bodyRows/contractRows → kwadratische kosten in de kwaliteitsscan (84,6 ms → 4,9 ms gemeten op een FMEA-document). Luie memo + badge-scan gecachet op de bron in plaats van per rebuild.
  • #2711 — DocumentMarkdownView._parse en computeDocumentStats herliepen het hele document per rebuild; kleine LRU-caches op de brontekst.

Test plan

  • flutter test test/ocideck_table_embed_test.dart test/ocideck_marked_table_test.dart groen (nieuwe regressietests voor de weergave-tik, loskoppelen en de decode-memo)
  • flutter analyze op de aangeraakte bestanden: schoon
  • dart format: geen wijzigingen
  • make check lokaal — de dart run-poorten vallen op een stale dartcv4/CMakeCache uit een parallelle worktree (omgeving, geen code); herbouw loopt

Lokale poort gedraaid op commit 8e0823b67.

## Summary - **#2709** — Een `ocideck:view`-tabel deed niets bij aanklikken (read-only per D2, maar zonder uitleg). Een tik opent nu een dialoog: ga naar de brontabel, of koppel los als momentopname. - **#2710** — `OciMarkedTable` decodéérde zijn tabel bij élke toegang tot `decodedRows`/`bodyRows`/`contractRows` → kwadratische kosten in de kwaliteitsscan (84,6 ms → 4,9 ms gemeten op een FMEA-document). Luie memo + badge-scan gecachet op de bron in plaats van per rebuild. - **#2711** — `DocumentMarkdownView._parse` en `computeDocumentStats` herliepen het hele document per rebuild; kleine LRU-caches op de brontekst. ## Test plan - [x] `flutter test test/ocideck_table_embed_test.dart test/ocideck_marked_table_test.dart` groen (nieuwe regressietests voor de weergave-tik, loskoppelen en de decode-memo) - [x] `flutter analyze` op de aangeraakte bestanden: schoon - [x] `dart format`: geen wijzigingen - [ ] `make check` lokaal — de `dart run`-poorten vallen op een stale dartcv4/CMakeCache uit een parallelle worktree (omgeving, geen code); herbouw loopt Lokale poort gedraaid op commit 8e0823b67.
OciMarkedTable decodeerde de hele tabel opnieuw bij elke toegang tot
decodedRows/bodyRows/contractRows; lussen over rijen werden daardoor
kwadratisch (gemeten: 84,6 ms per riskQualityFindings op een FMEA-
document, nu 4,9 ms). De decode is nu een luie memo.

De werkbalk-badge herberekende de scan bovendien bij elke rebuild —
ook zonder tekstwijziging. De telling is nu gecachet op de bron.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Een ocideck:view-tabel had geen invoercellen (bewust, RISK_FORMAT D2)
maar reageerde ook nergens op: klikken leek op een kapotte tabel. Een
tik opent nu een uitleg met de twee wegen die er zijn — naar de
brontabel springen, of loskoppelen als momentopname.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
DocumentMarkdownView parste de hele bron opnieuw bij elke rebuild,
ook als alleen de caret of het thema was veranderd; de
informatiestrook telde net zo vaak opnieuw. Beide pure functies
hebben nu een kleine cache op de brontekst.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
brenno merged commit 3bdede6f4d into main 2026-11-02 22:05:08 +00:00
Sign in to join this conversation.
No description provided.