Browse Source

Extracted other features and classes into separate files, fixed few ligatures conflicts with arrows

Nikita Prokopov 4 years ago
parent
commit
ace859529f

File diff suppressed because it is too large
+ 2 - 2
FiraCode.glyphs


+ 1 - 0
classes/ClosingBracket.fea

@@ -0,0 +1 @@
+bracketright braceright parenright

+ 13 - 0
classes/Digit.fea

@@ -0,0 +1,13 @@
+zero
+zero.zero
+one
+two
+twoTurned
+threeTurned
+three
+four
+five
+six
+seven
+eight
+nine

+ 12 - 0
classes/DigitTosf.fea

@@ -0,0 +1,12 @@
+zero.tosf
+zero.tosf.zero
+zero.zero.tosf
+one.tosf
+two.tosf
+three.tosf
+four.tosf
+five.tosf
+six.tosf
+seven.tosf
+eight.tosf
+nine.tosf

+ 1 - 0
classes/HexDigit.fea

@@ -0,0 +1 @@
+a b c d e f A B C D E F

+ 1 - 0
classes/OpeningBracket.fea

@@ -0,0 +1 @@
+bracketleft braceleft parenleft

+ 1 - 0
classes/Tall.fea

@@ -0,0 +1 @@
+@Uppercase zero one two twoTurned threeTurned three four five six seven eight nine @OpeningBracket @ClosingBracket bar

+ 17 - 12
clojure/fira_code/calt.clj

@@ -65,12 +65,14 @@
     ["colon" "greater"]
     "  ignore sub colon' greater equal;\n"
 
+    ;; #346 <=< <=> <=|
+    ["less" "equal"]
+    "  ignore sub less' equal [less greater bar];\n"
+    
     ;; #548 >=<
+    ;; #346 >=> >=< >=|
     ["greater" "equal"]
-    "  ignore sub greater' equal less;\n"
-
-    ["equal" "less"]
-    "  ignore sub greater equal' less;\n"
+    "  ignore sub greater' equal [less greater bar];\n"
 
     ;; #593 {|}
     ["braceleft" "bar"]
@@ -95,8 +97,7 @@
     ;; #410 <*>>> <+>>> <$>>>
     ;; #346 >>>->>> >>>=>>>
     ["greater" "greater" "greater"]
-    (str "  ignore sub [asterisk plus dollar hyphen equal] greater' greater greater;\n"
-         "  ignore sub greater' greater greater [hyphen equal];\n")
+    "  ignore sub [asterisk plus dollar] greater' greater greater;\n"
 
     ;; #410 <<*> <<+> <<$>
     ;; #346 <<-<< <<=<<
@@ -105,10 +106,8 @@
          "  ignore sub less' less [asterisk plus dollar hyphen equal];\n")
 
     ;; #410 <<<*> <<<+> <<<$>
-    ;; #346 <<<-<<< <<<=<<<
     ["less" "less" "less"]
-    (str "  ignore sub [hyphen equal] less' less less;\n"
-         "  ignore sub less' less less [asterisk plus dollar hyphen equal];\n")
+    "  ignore sub less' less less [asterisk plus dollar];\n"
 
     ;; #968 [==> [=>
     ;; #346 <==> <===> |==| |===|
@@ -122,7 +121,6 @@
 
     ;; #968 [-> [-->
     ;; #346 <--> <---> |--| |---|
-
     ["hyphen" "hyphen"]
     (str "  ignore sub [bracketleft less greater bar] hyphen' hyphen;\n"
          "  ignore sub hyphen' hyphen [bracketright less greater bar];\n")
@@ -144,8 +142,6 @@
   ["less" "asterisk" "greater"]
   ["less" "plus" "greater"]
   ["less" "dollar" "greater"]
-  ;; #795
-  ["f" "l"] ["F" "l"] ["T" "l"]
 })
 
 
@@ -245,6 +241,15 @@
         glyphs (map #(str (str/join "_" %) ".liga") ligas')
         counts (coll/group-by-to count count ligas')]
 
+    (when-some [unused (not-empty (reduce dissoc ignores ligas'))]
+      (println "  WARN Unused ignores" (str/join " " (keys unused))))
+
+    (when-some [unused (not-empty (reduce disj skip-ignores? ligas'))]
+      (println "  WARN Unused skip-ignores?" (str/join " " unused)))
+
+    (when-some [unused (not-empty (reduce disj manual? ligas))]
+      (println "  WARN Unused manual?" (str/join " " unused)))
+
     (println "  generated calt:" 
       ; (str/join " " glyphs)
       (str

+ 18 - 0
clojure/fira_code/classes.clj

@@ -0,0 +1,18 @@
+(ns fira-code.classes
+  (:require
+   [clojure.java.io :as io]
+   [clojure.string :as str]
+   [fira-code.glyphs :as glyphs]
+   [fira-code.files :as files]))
+
+
+(defn fill-class [font file]
+  (let [[_ name] (re-matches #"([^.]+)\.fea" (.getName file))
+        code     (slurp file)
+        class    {:code (str/trim code)
+                  :name name}]
+    (glyphs/set-class font name class)))
+
+
+(defn fill-all [font]
+  (reduce fill-class font (files/find "classes" #"classes/[^/]+\.fea")))

+ 3 - 2
clojure/fira_code/coll.clj

@@ -3,8 +3,9 @@
 
 (defn index-of [pred xs]
   (let [res (reduce (fn [i x] (if (pred x) (reduced i) (inc i))) 0 xs)]
-    (assert (< res (count xs)) "Nothing found")
-    res))
+    (if (>= res (count xs))
+      -1
+      res)))
 
 
 (defn group-by-to [key-fn value-fn xs]

Some files were not shown because too many files changed in this diff