Visuele modus herschrijft blokinhoud in een lijstitem, zonder terugval of waarschuwing #1925
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#1925
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?
Probleem
Blokinhoud die binnen een lijstitem staat, overleeft de rondgang door de
visuele modus niet. De inhoud wordt uit zijn inspringing gehaald en aan de
bulletregel geplakt; bij een codeblok verdwijnen de fence-regels zelfs
helemaal.
Dit is geen nieuw gedrag en niet iets wat #1920 introduceert — het gold al
voor codeblokken en tabellen. Het kwam boven bij een randproef op de nieuwe
mermaid-embed, en die proef liet zien dat mermaid het er nog het beste vanaf
brengt.
Gemeten
MarkdownQuillCodec.markdownFromDocument(documentFromMarkdown(bron)), driekeer dezelfde vorm — een lijstitem, een witregel, een ingesprongen blok:
Codeblok in — het ergste geval, de fences zijn weg en de code staat in de
bulletregel:
Stap een:
Stap twee
graph TD; A-->B;
Waarom dit ertoe doet
De belofte van de visuele modus is dat hij een document niet stilzwijgend
herschrijft: wat de rijke-tekstlaag niet verliesvrij aankan, valt zichtbaar
terug op brontekst (
markdownVisualLimitations). Hier gebeurt precies hettegenovergestelde. De scanner slaat alles binnen een fence bewust over en kent
geen inspringing, dus er is geen terugval, geen waarschuwing, en de gebruiker
ziet pas na het opslaan dat zijn code uit elkaar is gevallen. Stil verlies is
erger dan een zichtbare beperking — dat is de afweging die bij #1565 ook al
gemaakt is.
Richting
Twee mogelijke uitkomsten, en de keuze is een productkeuze:
herkennen en geeft er een
MarkdownVisualLimitationvoor, zodat de editornaar Bron wisselt in plaats van te herschrijven. Klein, eerlijk, en het
past bij hoe de andere beperkingen werken — maar het duwt documenten met
een codeblok in een lijst uit de visuele modus.
de embed of door het blok als kind van het lijstitem te laten reizen. Dat
is het echte antwoord, en een stuk groter.
Optie 1 is de ondergrens: liever zichtbaar minder kunnen dan stil kapotmaken.
Reproductie
test/zz_edge_probe_test.dartuit de sessie van 2026-09-02 (nietgecommit — de drie gevallen staan hierboven letterlijk). Een regressietest
hoort bij de fix; hij faalt vandaag op alle drie.
Referenties
lib/utils/markdown_quill_codec.dart— de heen- en terugweglib/utils/markdown_visual_compatibility.dartregel 72-77 — de fence-scannerdie inspringing niet kent