chore: add unit test and improve comment
This commit is contained in:
parent
8c8c41b05b
commit
d391a3a166
3 changed files with 34 additions and 31 deletions
|
|
@ -826,7 +826,10 @@ impl ShapeSpan {
|
|||
|
||||
let mut start_word = 0;
|
||||
for (end_lb, _) in unicode_linebreak::linebreaks(span) {
|
||||
// Workaround for broken |> ligature in code fonts
|
||||
// The unicode-linebreak crate treats the pipe character '|' as a break opportunity (BA/AL class).
|
||||
// This causes ShapeSpan::build to split text like '|>' into separate ShapeWords.
|
||||
// When these words are shaped independently, the font shaping engine cannot form ligatures that cross the word boundary.
|
||||
// We manually check for the '|>' sequence during segmentation and skip the break opportunity to ensure they remain in the same shaping run.
|
||||
if end_lb > 0 && end_lb < span.len() {
|
||||
let b = span.as_bytes();
|
||||
if b[end_lb - 1] == b'|' && b[end_lb] == b'>' {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue