Layout leftovers: RTL huge paragraphs, 11.3 formatter cost, ZWJ retry shaping, italic hook tip

Offen
#119 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
35/100
Issue-Typ
Bug
Klarheit
Muss geklärt werden
Aktivitätsstatus
Aktiv
Tech-Stack
csharp
Bereich
frontend

Rechercherichtung

Start by reading the layout batch 5 work in PRs #109–#113, especially the #112 retry, and inspect the tests that pin the italic hook behavior. Compare Avalonia 11.3 and 12 formatting, RTL paragraph width and caret behavior, ZWJ retry shaping, and justified line rendering. The issue lists several remaining problems but does not define which one to take or what result would count as done.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

From layout batch 5 (PR for #109-#113):

  • Avalonia 11.3's formatter costs about 2.4x 12's per run even with the windowed layout (1.1 s vs 0.46 s at 64,000 runs).
  • A 64,000-run paragraph with any right-to-left text is formatted whole and still grows with the square of its runs (about 2 s on 11.3); windowing changed RTL caret stops, so it's skipped there.
  • Avalonia's TextLine.Width for a line with RTL text depends on the surrounding text (differs by a space between whole and windowed formatting); ParagraphLayout.Width takes the widest of them.
  • The #112 retry draws a ZWJ as a word joiner, which an Arabic font may shape differently (only after the formatter refused the paragraph).
  • An italic hook that reaches past the middle of a space loses its tip in a justified line (a few pixels), pinned by a test.
Vorherrschende Sprache
C#
Sterne
0
Forks
0
Ø Merge
1 Std. 43 Min.
Gemergte PRs (30 T.)
43

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus sillsdev/SIL.TextEditing

Alle Issues in sillsdev/SIL.TextEditing

Ähnliche Issues

Weitere Issues zu C#

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.