Documentoverzicht: kopnavigatie gebruikt verkeerde positie bij stijlmetadata #2465

Closed
opened 2026-10-19 10:06:29 +00:00 by brenno · 0 comments
Owner

Gebruikersprobleem

Een tekstverwerker moet bij een klik in Overzicht de aangeklikte kop en caret exact tonen. Bij documenten met een stijlblok vóór de tekst kan de navigatie te ver springen of op het einde landen. Dit is een codebevinding; een live reproductie ontbreekt nog.

Oorzaak op origin/main (334604137)

DocumentEditorScreen bewerkt alleen document.body in _controller (lib/widgets/document_editor_screen.dart:225-234), maar _scrollToHeading bouwt het overzicht uit document.source en gebruikt entry.offset rechtstreeks als body-offset (regels 347-357). buildMarkdownOutline telt de frontmatterregels in de offset mee (lib/models/markdown_outline.dart:19-49). De rail bouwt eveneens uit source (lib/widgets/parts/document_editor_toolbar.dart:823); interne koplinks nemen dezelfde route. Dit is anders dan het eerder gesloten #2141, dat een wisselende actieve markering tijdens typen betrof.

Oplossing

Laat navigatie, actieve kop, zoek-/linkankers en editorselectie op één coördinatenstelsel werken: bouw het documentoverzicht uit body of vertaal source-offsets expliciet naar body-offsets. Zorg dat de Pagina's-, Bron- en Visueel-stand dezelfde kop aanwijzen. Geen bestandsformaatwijziging.

Acceptatie

Regressietest met theme-frontmatter en minstens drie koppen: klik elke kop in Overzicht, volg een interne koplink en controleer exacte caret/zichtbare kop in Bron en Visueel, ook na opslaan en opnieuw openen. Laat de test eerst op de oude route falen.

## Gebruikersprobleem Een tekstverwerker moet bij een klik in Overzicht de aangeklikte kop en caret exact tonen. Bij documenten met een stijlblok vóór de tekst kan de navigatie te ver springen of op het einde landen. Dit is een codebevinding; een live reproductie ontbreekt nog. ## Oorzaak op origin/main (334604137) DocumentEditorScreen bewerkt alleen document.body in _controller (lib/widgets/document_editor_screen.dart:225-234), maar _scrollToHeading bouwt het overzicht uit document.source en gebruikt entry.offset rechtstreeks als body-offset (regels 347-357). buildMarkdownOutline telt de frontmatterregels in de offset mee (lib/models/markdown_outline.dart:19-49). De rail bouwt eveneens uit source (lib/widgets/parts/document_editor_toolbar.dart:823); interne koplinks nemen dezelfde route. Dit is anders dan het eerder gesloten #2141, dat een wisselende actieve markering tijdens typen betrof. ## Oplossing Laat navigatie, actieve kop, zoek-/linkankers en editorselectie op één coördinatenstelsel werken: bouw het documentoverzicht uit body of vertaal source-offsets expliciet naar body-offsets. Zorg dat de Pagina's-, Bron- en Visueel-stand dezelfde kop aanwijzen. Geen bestandsformaatwijziging. ## Acceptatie Regressietest met theme-frontmatter en minstens drie koppen: klik elke kop in Overzicht, volg een interne koplink en controleer exacte caret/zichtbare kop in Bron en Visueel, ook na opslaan en opnieuw openen. Laat de test eerst op de oude route falen.
brenno 2026-10-19 12:51:44 +00:00
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#2465
No description provided.