Documentmodus: wisselen tussen visueel en bron brengt je niet op dezelfde plek in de tekst #1566
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#1566
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Wat er gebeurt
Sta in de visuele modus met de cursor ergens midden in een lang document en schakel naar de bron (
<>). De cursor staat daar niet op dezelfde plaats in de tekst, en de weergave scrollt niet naar waar je stond. Omgekeerd (bron → visueel) gebeurt hetzelfde.Waarom dat erg is
Wisselen van stand is precies de handeling die je doet omdat je op één plek iets in de bron wilt zien of zetten. Je raakt je plaats kwijt en moet in een lang document opnieuw gaan zoeken. Daarmee kost het meer dan het oplevert en gaat de gebruiker de bronstand vermijden.
Stappen om het te zien
Verwacht
Bij het wisselen van stand komt de cursor op de overeenkomstige plek in de andere weergave te staan, en die plek is in beeld. Precisie tot op het teken is niet nodig; de alinea/regel waar je stond wel.
Raakvlak
lib/widgets/markdown_editor/markdown_editor.dart(_transitionMode,_valueWithClampedSelection,_openVisualEditor),lib/widgets/document_editor_screen.dart(de wissel_DocViewMode.visual↔.source).Opgepakt in tak
fix/visuele-modus-bron(worktree), samen met #1565 en #1567 — hetzelfde oppervlak.Opgelost op main in PR #1574 (merge
f3389a49).MarkdownCaretMapvertaalt de cursor nu heen en weer tussen de Markdown-bron en de platte tekst van de visuele editor. Per regel — de visuele editor zet elk blok op een eigen regel, laat lege bronregels weg en vervangt een tabel, een scheidingslijn of een afbeelding door één objectteken — en binnen een regel door bron en zichtbare tekst samen door te lopen; die zichtbare tekst is altijd een deelrij van de bron, want opmaak haalt tekens weg en voegt er nooit een toe. Zo klopt de kolom ook midden in**vet**. Na de wissel krijgt het schrijfvlak de focus, anders schuift het de cursor niet in beeld.Wat er níet in zit: precisie tot op het teken in álle gevallen. Sta je middenin een opmaakteken, dan landt de cursor aan het begin daarvan. Dat staat zo in de gebruikersgids.
Getoetst met
document_caret_across_modes_test.dart, dat de kaart naast de échte platte tekst van de omzetting legt in plaats van naast zelfbedachte getallen, en in beide richtingen in de draaiende app nagekeken.