googlefonts / googlefonts/fontc

fea-rs does not handle glyphs property tokens

Open
#1,827 4 comments 0 reactions 0 assignees View on GitHub
correctness crater
Dominant language
Rust
Stars
193
Forks
21
Avg merge
1d 17h
Merged PRs (30d)
65

Description

I wasn't aware of this and I don't see it documented, but it's another cause of diff in Playfair.

Apparently you can write the following fea in glyphsapp:

```fea
pos a b ${D:width*4.5} ;
```

and this uses the width of the D glyph as the number value.

*edit: @khaledhosny points out below that this syntax is a [glyphs property token](https://handbook.glyphsapp.com/layout/tokens/#layout/tokens/glyph-property).*

~I'm not sure how widespread this is, and it wouldn't be hard to handle this particular case (of glyph widths) but it would be nice to know the full extent of this syntax.~

~Ultimately I would dream of a world where we agree to a variable FEA syntax and then glyphs.app handles converting its internal syntax into the common variable syntax, or something along these lines.~

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading the linked Glyphs property token documentation and tracing how fea-rs parses numeric values in feature code. Determine the supported glyph-property token forms, then add handling and focused coverage for the reported `${D:width*4.5}` case. Done means valid property-token input no longer produces a diff in Playfair.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.