Plakschoonmaak wist betekenisdragende witruimte: U+2009-inspringing en U+2028/29-regelscheiders verdwijnen #1560
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#1560
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 misgaat
sanitizeMarkdownPasteinlib/utils/markdown_paste_cleanup.dartverwijdert eenvaste lijst "onzichtbare tekens" onvoorwaardelijk:
Twee daarvan dragen wél betekenis zodra ze aan het begin van een regel of tussen
regels staan:
opsomming die met dunne spaties is ingesprongen komt volledig plat binnen —
alle items op het eerste niveau.
omgezet naar
\n. Alle regels plakken dan aan elkaar tot één regel.Gemeten
Inspringing van vier tekens, door
sanitizeMarkdownPaste:En met U+2028 of U+2029 als scheider tussen drie opsommingsregels:
regels=1,uitkomst
- een - twee - drie.Alleen U+2009 valt uit de toon: elke andere spatiesoort overleeft. Dat maakt dit
geen ontwerpkeuze maar een gat in de lijst.
Waarom de motivering niet meer opgaat
Het commentaar noemt de lijst "invisible characters often copied from news sites
(nu.nl, etc.)". Voor een dunne spatie midden in een zin klopt dat. Voor een
dunne spatie aan het begin van een regel niet: daar is het de structuur van het
document.
Wat het zou moeten doen
omzetten naar een gewone spatie, zoals NBSP al gebeurt.
\nin plaats van wissen; dat is precies watze betekenen. De regeleinde-normalisatie een regel hoger doet dat al voor
\r\nen\r.Waar het vandaan komt
Gevonden bij het natrekken van #1556 (inspringing kwijt bij plakken in de
broneditor van documentmodus). Dit is de eerste kandidaat die de beschrijving
van de indiener letterlijk reproduceert: "all bullets will now live on the same
primary level". Nog niet bevestigd dat zijn bronprogramma dunne spaties gebruikt
— daarvoor loopt de vraag om de ruwe klembordinhoud.
Bestandsformaat
Raakt het formaat niet; het gaat om wat er bij het plakken de tekst in komt.
Regressietest
Per spatiesoort de inspringing meten na
sanitizeMarkdownPaste, en U+2028/29tellen als regelovergang. De tabel hierboven is de test.