Using a different feature files compiler?

Is it possible to make Glyphs use a different feature files compiler (namely feaLib) instead of makeotf?

I use mixed single and multiple substitutions in the same feature, feaLib will generate one lookup for them (ugrading the single substitutions to multiple) while makeotf will not and produce many lookups (a new lookup each time the type changes), so I end up with 10s of lookups needlessly.

You can override that if you define it as a lookup yourself (you know, lookup XXX {…} XXX;), should give you (pretty much) the same result.

Is this the post process you were thinking of in the other thread?

A single lookup will produce an error (fonttools#612), so I have to separate them in two lookups which is still one too many.

But anyway, I’d like to have a way to use feaLib (or another future feature files compiler) since it is much easier to hack and extend, and allows for an escape route from makeotf bugs/limitations.

For now, you could switch the single substitutions to multiple by adding tick marks. I’ll see about that alternate compiler.

Interesing, can you elaborate on the tick marks part?

I currently have something like:

sub behDotless-ar by behDotless-ar.init;
sub beh-ar by behDotless-ar.init dotbelow-ar;

How can I make the first line a multiple substitution?

I misread this.
But why do you try to handle this in the same lookup? Put the .init into the init feature and the rest into ccmp?

The composition is often different based on position, e.g. yeh-ar has the following, isol:

sub yeh-ar by alefMaksura-ar twodotshorizontalbelow-ar;


sub yeh-ar by behDotless-ar.init twodotshorizontalbelow-ar;


sub yeh-ar by behDotless-ar.medi twodotshorizontalbelow-ar;


sub yeh-ar by alefMaksura-ar.fina twodotshorizontalbelow-ar;

The base is different. Other letters like yeh-farsi don’t have dots in certain positions, others have different dots (above vs below) depending on position.