kopia lustrzana https://github.com/tonsky/FiraCode
39 wiersze
1.1 KiB
Clojure
39 wiersze
1.1 KiB
Clojure
(ns fira-code.features
|
|
(:require
|
|
[clojure.java.io :as io]
|
|
[clojure.string :as str]
|
|
[fira-code.glyphs :as glyphs]
|
|
[fira-code.files :as files]))
|
|
|
|
|
|
(defn append-calt [font]
|
|
(let [features (->> (files/find "features/calt" #"features/calt/[^/]+\.fea")
|
|
(map slurp)
|
|
(map str/trim)
|
|
(str/join "\n\n"))]
|
|
(println " appending to feature calt" (glyphs/lines features) "lines")
|
|
(glyphs/update-code font :features "calt"
|
|
#(str % "\n\n" features))))
|
|
|
|
|
|
(defn fill-feature [font file]
|
|
(let [[_ name] (re-matches #"([^.]+)\.fea" (.getName file))
|
|
code (slurp file)
|
|
[_ notes code'] (re-matches #"(?s)#([^\n]+)\n(.*)" code)
|
|
feature (if notes
|
|
{:code (str/trim code')
|
|
:name name
|
|
:notes (str/trim notes)}
|
|
{:code (str/trim code)
|
|
:name name})]
|
|
(glyphs/set-feature font name feature)))
|
|
|
|
|
|
(defn fill-features [font]
|
|
(reduce fill-feature font (files/find "features" #"features/[^/]+\.fea")))
|
|
|
|
|
|
(defn fill-all [font]
|
|
(-> font
|
|
(append-calt)
|
|
(fill-features))) |