1
0
Fork 0
mirror of synced 2024-05-07 06:03:24 +12:00
FiraCode/features/calt/arrows.fea

97 lines
5 KiB
Plaintext

### Arbitrary-length arrows #346
lookup arrows {
# continue hyphen
sub [less_start.arw less_less_start.arw less_middle.arw less_less_middle.arw greater_start.arw greater_greater_start.arw greater_middle.arw greater_greater_middle.arw bar_start.arw bar_bar_start.arw bar_middle.arw bar_bar_middle.arw hyphen_start.arw hyphen_end.arw] hyphen' by hyphen_end.arw;
# double middles
sub [hyphen_start.arw hyphen_end.arw] less.spacer less' hyphen by less_less_middle.arw;
sub [hyphen_start.arw hyphen_end.arw] less' less hyphen by less.spacer;
sub [hyphen_start.arw hyphen_end.arw] greater.spacer greater' hyphen by greater_greater_middle.arw;
sub [hyphen_start.arw hyphen_end.arw] greater' greater hyphen by greater.spacer;
sub [hyphen_start.arw hyphen_end.arw] bar.spacer bar' hyphen by bar_bar_middle.arw;
sub [hyphen_start.arw hyphen_end.arw] bar' bar hyphen by bar.spacer;
# single middles
sub [hyphen_start.arw hyphen_end.arw] less' hyphen by less_middle.arw;
sub [hyphen_start.arw hyphen_end.arw] greater' hyphen by greater_middle.arw;
sub [hyphen_start.arw hyphen_end.arw] bar' hyphen by bar_middle.arw;
# double ends
sub [hyphen_start.arw hyphen_end.arw] less.spacer less' by less_less_end.arw;
sub [hyphen_start.arw hyphen_end.arw] less' less by less.spacer;
sub [hyphen_start.arw hyphen_end.arw] greater.spacer greater' by greater_greater_end.arw;
sub [hyphen_start.arw hyphen_end.arw] greater' greater by greater.spacer;
sub [hyphen_start.arw hyphen_end.arw] bar.spacer bar' by bar_bar_end.arw;
sub [hyphen_start.arw hyphen_end.arw] bar' bar by bar.spacer;
# single ends
sub [hyphen_start.arw hyphen_end.arw] less' by less_end.arw;
sub [hyphen_start.arw hyphen_end.arw] greater' by greater_end.arw;
sub [hyphen_start.arw hyphen_end.arw] bar' by bar_end.arw;
# double beginnings
sub less.spacer less' hyphen by less_less_start.arw;
sub less' less hyphen by less.spacer;
sub greater.spacer greater' hyphen by greater_greater_start.arw;
sub greater' greater hyphen by greater.spacer;
sub bar.spacer bar' hyphen by bar_bar_start.arw;
sub bar' bar hyphen by bar.spacer;
# single beginnings
sub less' hyphen by less_start.arw;
sub greater' hyphen by greater_start.arw;
sub bar' hyphen by bar_start.arw;
sub hyphen' [hyphen less greater bar] by hyphen_start.arw;
} arrows;
lookup double_arrows {
# Disable >=< #548
# ignore sub greater' equal less;
# ignore sub greater equal' less;
# ignore sub greater equal less';
# continue hyphen
sub [less_start.darw less_less_start.darw less_middle.darw less_less_middle.darw greater_start.darw greater_greater_start.darw greater_middle.darw greater_greater_middle.darw bar_start.darw bar_bar_start.darw bar_middle.darw bar_bar_middle.darw equal_start.darw equal_end.darw] equal' by equal_end.darw;
# double middles
sub [equal_start.darw equal_end.darw] less.spacer less' equal by less_less_middle.darw;
sub [equal_start.darw equal_end.darw] less' less equal by less.spacer;
sub [equal_start.darw equal_end.darw] greater.spacer greater' equal by greater_greater_middle.darw;
sub [equal_start.darw equal_end.darw] greater' greater equal by greater.spacer;
sub [equal_start.darw equal_end.darw] bar.spacer bar' equal by bar_bar_middle.darw;
sub [equal_start.darw equal_end.darw] bar' bar equal by bar.spacer;
# single middles
sub [equal_start.darw equal_end.darw] less' equal by less_middle.darw;
sub [equal_start.darw equal_end.darw] greater' equal by greater_middle.darw;
sub [equal_start.darw equal_end.darw] bar' equal by bar_middle.darw;
# double ends
sub [equal_start.darw equal_end.darw] less.spacer less' by less_less_end.darw;
sub [equal_start.darw equal_end.darw] less' less by less.spacer;
sub [equal_start.darw equal_end.darw] greater.spacer greater' by greater_greater_end.darw;
sub [equal_start.darw equal_end.darw] greater' greater by greater.spacer;
sub [equal_start.darw equal_end.darw] bar.spacer bar' by bar_bar_end.darw;
sub [equal_start.darw equal_end.darw] bar' bar by bar.spacer;
# single ends
sub [equal_start.darw equal_end.darw] less' by less_end.darw;
sub [equal_start.darw equal_end.darw] greater' by greater_end.darw;
sub [equal_start.darw equal_end.darw] bar' by bar_end.darw;
# double beginnings
sub less.spacer less' equal by less_less_start.darw;
sub less' less equal by less.spacer;
sub greater.spacer greater' equal by greater_greater_start.darw;
sub greater' greater equal by greater.spacer;
sub bar.spacer bar' equal by bar_bar_start.darw;
sub bar' bar equal by bar.spacer;
# single beginnings
sub less' equal by less_start.darw;
sub greater' equal by greater_start.darw;
sub bar' equal by bar_start.darw;
sub equal' [equal less greater bar] by equal_start.darw;
} double_arrows;