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

Đang mở
#119 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
35/100
Loại issue
Lỗi
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Sôi nổi
Công nghệ
csharp
Lĩnh vực
frontend

Hướng nghiên cứu

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.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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.
Ngôn ngữ chính
C#
Star
0
Fork
0
Merge trung bình
1 giờ 43 phút
Pull request đã merge (30 ngày)
43

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của sillsdev/SIL.TextEditing

Tất cả issue của sillsdev/SIL.TextEditing

Issue tương tự

Thêm issue về C#

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.