Tabel bewerken raakt de tijdlijntabel ernaast: ordinalen lopen uit elkaar #1662

Closed
opened 2026-08-21 12:01:55 +00:00 by brenno · 0 comments
Owner

Wat er misgaat

Dubbelklik of potlood op een gewone GFM-tabel schrijft terug via replaceNthTableBlock / nthTableBlockRange, die élke GFM-tabel tellen — ook de tabel onder <!-- timeline -->.

De weergave telt alleen _Kind.table. Een tijdlijn is _Kind.timeline en verhoogt table niet. Staat er een tijdlijn vóór een gewone tabel, dan is het potlood op tabel 0 in beeld tabel 1 in de bron (of het vervangt de tijdlijn).

Stille databeschadiging: de tijdlijnbron verdwijnt of de verkeerde tabel wordt overschreven.

Waar het zit

  • Telling in de view: lib/widgets/reader/document_markdown_view.dart (table++ alleen bij _Kind.table).
  • Vervanging: nthTableBlockRange (alle pipe-tabellen, fences uitgezonderd).
  • Handler: lib/widgets/parts/document_editor_inserts.dart.

Stappen

  1. Document: tijdlijnblok, daarna een gewone GFM-tabel.
  2. Bron of Visueel: potlood op de gewone tabel, cel wijzigen, Toepassen.
  3. De tijdlijn is veranderd of weg; de gewone tabel niet.

Wat het met het formaat doet

De .md wordt op de verkeerde bytes geschreven. Round-trip van de tijdlijn-envelop is dan kapot.

Regressie

Test: marker + GFM-tijdlijntabel + tweede tabel; onEditTable(0) vervangt alleen de tweede. nthTableBlockRange moet dezelfde telling gebruiken als _parse.

## Wat er misgaat Dubbelklik of potlood op een **gewone** GFM-tabel schrijft terug via `replaceNthTableBlock` / `nthTableBlockRange`, die élke GFM-tabel tellen — ook de tabel onder `<!-- timeline -->`. De weergave telt alleen `_Kind.table`. Een tijdlijn is `_Kind.timeline` en verhoogt `table` niet. Staat er een tijdlijn vóór een gewone tabel, dan is het potlood op tabel 0 in beeld tabel 1 in de bron (of het vervangt de tijdlijn). Stille databeschadiging: de tijdlijnbron verdwijnt of de verkeerde tabel wordt overschreven. ## Waar het zit - Telling in de view: `lib/widgets/reader/document_markdown_view.dart` (`table++` alleen bij `_Kind.table`). - Vervanging: `nthTableBlockRange` (alle pipe-tabellen, fences uitgezonderd). - Handler: `lib/widgets/parts/document_editor_inserts.dart`. ## Stappen 1. Document: tijdlijnblok, daarna een gewone GFM-tabel. 2. Bron of Visueel: potlood op de gewone tabel, cel wijzigen, Toepassen. 3. De tijdlijn is veranderd of weg; de gewone tabel niet. ## Wat het met het formaat doet De `.md` wordt op de verkeerde bytes geschreven. Round-trip van de tijdlijn-envelop is dan kapot. ## Regressie Test: marker + GFM-tijdlijntabel + tweede tabel; `onEditTable(0)` vervangt alleen de tweede. `nthTableBlockRange` moet dezelfde telling gebruiken als `_parse`.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
LibreKAT/Ocideck#1662
No description provided.