summaryrefslogtreecommitdiff
path: root/src/features
diff options
context:
space:
mode:
authorRasmus Andersson <rasmus@notion.se>2019-08-05 03:21:25 +0300
committerRasmus Andersson <rasmus@notion.se>2019-08-05 03:21:25 +0300
commit1a0a8dc178cfcea2d61f690fd41a2166ad1f8475 (patch)
treefdca8b4b7a0dcb99ddcefcbf8245ce20c3ce84ed /src/features
parent49cd0c56c80c87ed721a3a317e891348f4515da1 (diff)
downloadinter-1a0a8dc178cfcea2d61f690fd41a2166ad1f8475.tar.xz
adds double-stem arrows (looks like equal signs)
Diffstat (limited to 'src/features')
-rw-r--r--src/features/calt.fea12
-rw-r--r--src/features/liga.fea51
2 files changed, 56 insertions, 7 deletions
diff --git a/src/features/calt.fea b/src/features/calt.fea
index 8b1ad6dc4..341678c5a 100644
--- a/src/features/calt.fea
+++ b/src/features/calt.fea
@@ -62,11 +62,17 @@
leftArrow
leftLongArrow
leftLongArrow2
+ leftDoubleArrow
+ leftLongDoubleArrow
rightArrow
rightLongArrow
rightLongArrow2
+ rightDoubleArrow
+ rightLongDoubleArrow
leftRightArrow
leftRightLongArrow
+ leftRightDoubleArrow
+ leftRightLongDoubleArrow
colon
approxequal
asciitilde
@@ -107,11 +113,17 @@
leftArrow.case
leftLongArrow.case
leftLongArrow2.case
+ leftDoubleArrow.case
+ leftLongDoubleArrow.case
rightArrow.case
rightLongArrow.case
rightLongArrow2.case
+ rightDoubleArrow.case
+ rightLongDoubleArrow.case
leftRightArrow.case
leftRightLongArrow.case
+ leftRightDoubleArrow.case
+ leftRightLongDoubleArrow.case
colon.case
approxequal.case
asciitilde.case
diff --git a/src/features/liga.fea b/src/features/liga.fea
index 863ce2ba6..a0ebf89c1 100644
--- a/src/features/liga.fea
+++ b/src/features/liga.fea
@@ -8,23 +8,60 @@
endash.case
emdash.case
];
+@DASH_ANY = [ @DASH @DASH_CASE ];
+# --->
+sub @DASH @DASH @DASH greater by rightLongArrow2;
+sub @DASH_ANY @DASH_ANY @DASH_ANY greater.case by rightLongArrow2.case;
+# -->
+sub @DASH @DASH greater by rightLongArrow;
+sub @DASH_ANY @DASH_ANY greater.case by rightLongArrow.case;
+# [endash emdash]-> (legacy)
+sub [endash emdash] greater by rightLongArrow;
+sub [endash emdash endash.case emdash.case] greater.case by rightLongArrow.case;
# ->
sub hyphen greater by rightArrow;
-sub [endash emdash] greater by rightLongArrow; # legacy
-sub @DASH @DASH greater by rightLongArrow;
-sub @DASH @DASH @DASH greater by rightLongArrow2;
-# <-
-sub less @DASH @DASH by leftLongArrow;
+sub [hyphen hyphen.case] greater.case by rightArrow.case;
+# <---
sub less @DASH @DASH @DASH by leftLongArrow2;
-ignore sub less' hyphen' @Numeral; # ignore e.g. "<-3" ("less than negative")
+sub less.case @DASH_ANY @DASH_ANY @DASH_ANY by leftLongArrow2.case;
+# <--
+sub less @DASH @DASH by leftLongArrow;
+sub less.case @DASH_ANY @DASH_ANY by leftLongArrow.case;
+# <-[endash emdash] (legacy)
+sub less [endash emdash] by leftLongArrow;
+sub less.case [endash emdash endash.case emdash.case] by leftLongArrow.case;
+# ignore e.g. "<-3" ("less than negative")
+ignore sub less' hyphen' @Numeral;
+ignore sub less.case' [hyphen hyphen.case]' @Numeral;
+# <-
sub less' hyphen' by leftArrow;
-sub less [endash emdash] by leftLongArrow; # legacy
+sub less.case' [hyphen hyphen.case]' by leftArrow.case;
# <->
sub less rightArrow by leftRightArrow; # <,->
+sub [less less.case] rightArrow.case by leftRightArrow.case;
sub leftArrow greater by leftRightArrow; # <-,-
+sub leftArrow.case [greater greater.case] by leftRightArrow.case;
+# <-->
sub less rightLongArrow by leftRightLongArrow; # <,-->
+sub [less less.case] rightLongArrow.case by leftRightLongArrow.case;
sub leftLongArrow greater by leftRightLongArrow; # <--,>
+sub leftLongArrow.case [greater greater.case] by leftRightLongArrow.case;
+# <=>
+sub less equal greater by leftRightDoubleArrow;
+sub less.case [equal equal.case] [greater greater.case] by leftRightDoubleArrow.case;
+sub less equal equal greater by leftRightLongDoubleArrow;
+sub less.case [equal equal.case] [equal equal.case] [greater greater.case] by leftRightLongDoubleArrow.case;
+# =>
+sub equal equal greater by rightLongDoubleArrow;
+sub [equal equal.case] [equal equal.case] greater.case by rightLongDoubleArrow.case;
+sub equal greater by rightDoubleArrow;
+sub [equal equal.case] greater.case by rightDoubleArrow.case;
+# <==
+sub less equal equal by leftLongDoubleArrow;
+sub less.case [equal equal.case] [equal equal.case] by leftLongDoubleArrow.case;
+# Note: We do NOT (sub less equal by leftDoubleArrow) as that would
+# interfere with "<=" (less than or equal to)
# x surrounded by numbers, e.g. 3x4 -> 3×4
sub @Numeral x' @Numeral by multiply; # 3x9