mirror of
https://github.com/tonsky/FiraCode.git
synced 2024-10-05 17:17:34 +03:00
Catching bugs
This commit is contained in:
parent
c1c62fd720
commit
524a28629b
2883
FiraCode.glyphs
2883
FiraCode.glyphs
File diff suppressed because one or more lines are too long
@ -32,9 +32,20 @@
|
||||
" " (str/join " " (drop 1 liga))
|
||||
";\n"))))
|
||||
|
||||
;; #346 We need << <<< >> >>> || ||| substituted before -- --- == ===
|
||||
;; so that `ignore [less greater bar] hyphen hyphen` would not trigger
|
||||
(def priority?
|
||||
#{["less" "less"]
|
||||
["less" "less" "less"]
|
||||
["greater" "greater"]
|
||||
["greater" "greater" "greater"]
|
||||
["bar" "bar"]
|
||||
["bar" "bar" "bar"]})
|
||||
|
||||
|
||||
(def ignores
|
||||
{ ["slash" "asterisk"]
|
||||
(coll/multimap-by str
|
||||
["slash" "asterisk"]
|
||||
(str
|
||||
" ignore sub slash' asterisk slash;\n"
|
||||
" ignore sub asterisk slash' asterisk;\n")
|
||||
@ -65,23 +76,6 @@
|
||||
["colon" "greater"]
|
||||
" ignore sub colon' greater equal;\n"
|
||||
|
||||
;; #346 =:=
|
||||
["colon" "equal"]
|
||||
" ignore sub equal colon' equal;\n"
|
||||
|
||||
;; #346 =!=
|
||||
["exclam" "equal"]
|
||||
" ignore sub equal exclam' equal;\n"
|
||||
|
||||
;; #346 <=< <=> <=| <=: <=! <=/
|
||||
["less" "equal"]
|
||||
" ignore sub less' equal [less greater bar colon exclam slash];\n"
|
||||
|
||||
;; #548 >=<
|
||||
;; #346 >=> >=< >=| >=: >=! >=/
|
||||
["greater" "equal"]
|
||||
" ignore sub greater' equal [less greater bar colon exclam slash];\n"
|
||||
|
||||
;; #593 {|}
|
||||
["braceleft" "bar"]
|
||||
" ignore sub braceleft' bar braceright;\n"
|
||||
@ -97,55 +91,92 @@
|
||||
" ignore sub bracketleft bar' bracketright;\n"
|
||||
|
||||
;; #410 <*>> <+>> <$>>
|
||||
;; #346 >>->> >>=>>
|
||||
["greater" "greater"]
|
||||
(str " ignore sub [asterisk plus dollar hyphen equal] greater' greater;\n"
|
||||
" ignore sub greater' greater [hyphen equal];\n")
|
||||
" ignore sub [asterisk plus dollar] greater' greater;\n"
|
||||
|
||||
;; #410 <*>>> <+>>> <$>>>
|
||||
;; #346 >>>->>> >>>=>>>
|
||||
["greater" "greater" "greater"]
|
||||
" ignore sub [asterisk plus dollar] greater' greater greater;\n"
|
||||
|
||||
;; #410 <<*> <<+> <<$>
|
||||
;; #346 <<-<< <<=<<
|
||||
["less" "less"]
|
||||
(str " ignore sub [hyphen equal] less' less;\n"
|
||||
" ignore sub less' less [asterisk plus dollar hyphen equal];\n")
|
||||
" ignore sub less' less [asterisk plus dollar];\n"
|
||||
|
||||
;; #410 <<<*> <<<+> <<<$>
|
||||
["less" "less" "less"]
|
||||
" ignore sub less' less less [asterisk plus dollar];\n"
|
||||
|
||||
;; #968 [==
|
||||
;; #346 <==> >==< |==| /==/
|
||||
;; #968 [== ==]
|
||||
["equal" "equal"]
|
||||
(str " ignore sub [bracketleft less greater bar slash] equal' equal;\n"
|
||||
" ignore sub equal' equal [bracketright less greater bar slash] ;\n")
|
||||
(str " ignore sub bracketleft equal' equal;\n"
|
||||
" ignore sub equal' equal bracketright;\n")
|
||||
|
||||
;; #968 [===
|
||||
;; #346 <===> >===< |===| /===/
|
||||
;; #968 [=== ===]
|
||||
["equal" "equal" "equal"]
|
||||
(str " ignore sub [bracketleft less greater bar slash] equal' equal equal;\n"
|
||||
" ignore sub equal' equal equal [bracketright less greater bar slash];\n")
|
||||
(str " ignore sub bracketleft equal' equal equal;\n"
|
||||
" ignore sub equal' equal equal bracketright;\n")
|
||||
|
||||
;; #968 [--
|
||||
;; #346 <--> >--< |--|
|
||||
["hyphen" "hyphen"]
|
||||
(str " ignore sub [bracketleft less greater bar] hyphen' hyphen;\n"
|
||||
" ignore sub hyphen' hyphen [bracketright less greater bar];\n")
|
||||
;; #346 =:=
|
||||
["colon" "equal"]
|
||||
" ignore sub equal colon' equal;\n"
|
||||
|
||||
;; #968 [---
|
||||
;; #346 <---> >---< |---|
|
||||
["hyphen" "hyphen" "hyphen"]
|
||||
(str " ignore sub [bracketleft less greater bar] hyphen' hyphen hyphen;\n"
|
||||
" ignore sub hyphen' hyphen hyphen [bracketright less greater bar];\n")
|
||||
;; #346 =!=
|
||||
["exclam" "equal"]
|
||||
" ignore sub equal exclam' equal;\n"
|
||||
;; #346 =!==
|
||||
["exclam" "equal" "equal"]
|
||||
" ignore sub equal exclam' equal equal;\n"
|
||||
|
||||
;; #346 =<= <=< <=> <=| <=: <=! <=/
|
||||
["less" "equal"]
|
||||
(str " ignore sub equal less' equal;\n"
|
||||
" ignore sub less' equal [less greater bar colon exclam slash];\n")
|
||||
|
||||
;; #548 >=<
|
||||
;; #346 =>= >=> >=< >=| >=: >=! >=/
|
||||
["greater" "equal"]
|
||||
(str " ignore sub equal greater' equal;\n"
|
||||
" ignore sub greater' equal [less greater bar colon exclam slash];\n")
|
||||
|
||||
;; #346 >>->> >>=>>
|
||||
["greater" "greater"]
|
||||
(str " ignore sub [hyphen equal] greater' greater;\n"
|
||||
" ignore sub greater' greater [hyphen equal];\n")
|
||||
|
||||
;; #346 <<-<< <<=<<
|
||||
["less" "less"]
|
||||
(str " ignore sub [hyphen equal] less' less;\n"
|
||||
" ignore sub less' less [hyphen equal];\n")
|
||||
|
||||
;; #346 ||-|| ||=||
|
||||
["bar" "bar"]
|
||||
(str " ignore sub [hyphen equal] bar' bar;\n"
|
||||
" ignore sub bar' bar [hyphen equal];\n")
|
||||
})
|
||||
|
||||
;; #346 <--> >--< |--|
|
||||
["hyphen" "hyphen"]
|
||||
(str " ignore sub [less greater bar] hyphen' hyphen;\n"
|
||||
" ignore sub hyphen' hyphen [less greater bar];\n")
|
||||
|
||||
;; #346 <---> >---< |---|
|
||||
["hyphen" "hyphen" "hyphen"]
|
||||
(str " ignore sub [less greater bar] hyphen' hyphen hyphen;\n"
|
||||
" ignore sub hyphen' hyphen hyphen [less greater bar];\n")
|
||||
|
||||
;; #346 <==> >==< |==| /==/ =:== =!== ==:= ==!=
|
||||
["equal" "equal"]
|
||||
(str " ignore sub equal [colon exclam] equal' equal;\n"
|
||||
" ignore sub [less greater bar slash] equal' equal;\n"
|
||||
" ignore sub equal' equal [less greater bar slash] ;\n"
|
||||
" ignore sub equal' equal [colon exclam] equal;\n")
|
||||
|
||||
;; #346 <===> >===< |===| /===/ =:=== =!=== ===:= ===!=
|
||||
["equal" "equal" "equal"]
|
||||
(str " ignore sub equal [colon exclam] equal' equal equal;\n"
|
||||
" ignore sub [less greater bar slash] equal' equal equal;\n"
|
||||
" ignore sub equal' equal equal [less greater bar slash];\n"
|
||||
" ignore sub equal' equal equal [colon exclam] equal;\n")
|
||||
))
|
||||
|
||||
|
||||
;; DO NOT generate ignores at all
|
||||
@ -238,6 +269,8 @@
|
||||
|
||||
(defn compare-ligas [l1 l2]
|
||||
(cond
|
||||
(and (priority? l1) (not (priority? l2))) -1
|
||||
(and (not (priority? l1)) (priority? l2)) 1
|
||||
(> (count l1) (count l2)) -1
|
||||
(< (count l1) (count l2)) 1
|
||||
:else (compare l1 l2)))
|
||||
|
@ -14,3 +14,12 @@
|
||||
(assoc m k (value-fn vs)))
|
||||
{}
|
||||
(group-by key-fn xs)))
|
||||
|
||||
|
||||
(defn multimap-by [f & kvs]
|
||||
(reduce
|
||||
(fn [m [k v]]
|
||||
(if (contains? m k)
|
||||
(update m k f v)
|
||||
(assoc m k v)))
|
||||
{} (partition 2 kvs)))
|
@ -1,51 +0,0 @@
|
||||
### Arbitrary-length arrows #346
|
||||
|
||||
lookup arrows {
|
||||
# Disable |||
|
||||
ignore sub bar bar' bar hyphen;
|
||||
ignore sub bar bar' hyphen;
|
||||
ignore sub [hyphen_start.arw hyphen_end.arw] bar' bar bar;
|
||||
|
||||
# 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;
|
@ -1,63 +0,0 @@
|
||||
lookup double_arrows {
|
||||
# Disable |||
|
||||
ignore sub bar bar' bar equal;
|
||||
ignore sub bar bar' equal;
|
||||
ignore sub [equal_start.darw equal_end.darw] bar' bar bar;
|
||||
|
||||
# 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 slash_start.darw slash_middle.darw colon_middle.darw exclam_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;
|
||||
sub [equal_start.darw equal_end.darw] slash' equal by slash_middle.darw;
|
||||
sub [equal_start.darw equal_end.darw] colon' equal by colon_middle.darw;
|
||||
sub [equal_start.darw equal_end.darw] exclam' equal by exclam_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;
|
||||
sub [equal_start.darw equal_end.darw] slash' by slash_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;
|
||||
|
||||
# Disable >=< #548
|
||||
sub greater' equal less [equal less] by greater_start.darw;
|
||||
ignore sub greater' equal less;
|
||||
|
||||
# Disable =< #479 #468 #424 #406 #355 #305
|
||||
sub equal' less [equal less] by equal_start.darw;
|
||||
ignore sub equal' less;
|
||||
|
||||
# single beginnings
|
||||
sub less' equal by less_start.darw;
|
||||
sub greater' equal by greater_start.darw;
|
||||
sub bar' equal by bar_start.darw;
|
||||
sub slash' equal by slash_start.darw;
|
||||
sub equal' [equal less greater bar colon exclam slash] by equal_start.darw;
|
||||
|
||||
} double_arrows;
|
65
features/calt/equal_arrows.fea
Normal file
65
features/calt/equal_arrows.fea
Normal file
@ -0,0 +1,65 @@
|
||||
lookup equal_arrows {
|
||||
# Disable |||
|
||||
ignore sub bar bar' bar equal;
|
||||
ignore sub bar bar' equal;
|
||||
ignore sub [equal_start.darw equal_middle.darw] bar' bar bar;
|
||||
|
||||
# equal middle & end
|
||||
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 slash_start.darw slash_middle.darw colon_middle.darw exclam_middle.darw equal_start.darw equal_middle.darw] equal' [equal less greater bar slash colon exclam] by equal_middle.darw;
|
||||
|
||||
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 slash_start.darw slash_middle.darw colon_middle.darw exclam_middle.darw equal_start.darw equal_middle.darw] equal' by equal_end.darw;
|
||||
|
||||
# double middles
|
||||
sub [equal_start.darw equal_middle.darw] less.spacer less' equal by less_less_middle.darw;
|
||||
sub [equal_start.darw equal_middle.darw] less' less equal by less.spacer;
|
||||
sub [equal_start.darw equal_middle.darw] greater.spacer greater' equal by greater_greater_middle.darw;
|
||||
sub [equal_start.darw equal_middle.darw] greater' greater equal by greater.spacer;
|
||||
sub [equal_start.darw equal_middle.darw] bar.spacer bar' equal by bar_bar_middle.darw;
|
||||
sub [equal_start.darw equal_middle.darw] bar' bar equal by bar.spacer;
|
||||
|
||||
# single middles
|
||||
sub [equal_start.darw equal_middle.darw] less' equal by less_middle.darw;
|
||||
sub [equal_start.darw equal_middle.darw] greater' equal by greater_middle.darw;
|
||||
sub [equal_start.darw equal_middle.darw] bar' equal by bar_middle.darw;
|
||||
sub [equal_start.darw equal_middle.darw] slash' equal by slash_middle.darw;
|
||||
sub [equal_start.darw equal_middle.darw] colon' equal by colon_middle.darw;
|
||||
sub [equal_start.darw equal_middle.darw] exclam' equal by exclam_middle.darw;
|
||||
|
||||
# double ends
|
||||
sub [equal_start.darw equal_middle.darw] less.spacer less' by less_less_end.darw;
|
||||
sub [equal_start.darw equal_middle.darw] less' less by less.spacer;
|
||||
sub [equal_start.darw equal_middle.darw] greater.spacer greater' by greater_greater_end.darw;
|
||||
sub [equal_start.darw equal_middle.darw] greater' greater by greater.spacer;
|
||||
sub [equal_start.darw equal_middle.darw] bar.spacer bar' by bar_bar_end.darw;
|
||||
sub [equal_start.darw equal_middle.darw] bar' bar by bar.spacer;
|
||||
|
||||
# single ends
|
||||
sub [equal_start.darw equal_middle.darw] less' by less_end.darw;
|
||||
sub [equal_start.darw equal_middle.darw] greater' by greater_end.darw;
|
||||
sub [equal_start.darw equal_middle.darw] bar' by bar_end.darw;
|
||||
sub [equal_start.darw equal_middle.darw] slash' by slash_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;
|
||||
|
||||
# Disable >=< #548
|
||||
sub greater' equal less [equal less] by greater_start.darw;
|
||||
ignore sub greater' equal less;
|
||||
|
||||
# Disable =< #479 #468 #424 #406 #355 #305
|
||||
sub equal' less [equal less] by equal_start.darw;
|
||||
ignore sub equal' less;
|
||||
|
||||
# single beginnings
|
||||
sub less' equal by less_start.darw;
|
||||
sub greater' equal by greater_start.darw;
|
||||
sub bar' equal by bar_start.darw;
|
||||
sub slash' equal by slash_start.darw;
|
||||
sub equal' [equal less greater bar colon exclam slash] by equal_start.darw;
|
||||
|
||||
} equal_arrows;
|
54
features/calt/hyphen_arrows.fea
Normal file
54
features/calt/hyphen_arrows.fea
Normal file
@ -0,0 +1,54 @@
|
||||
|
||||
### Arbitrary-length arrows #346
|
||||
|
||||
lookup hyphen_arrows {
|
||||
# Disable |||
|
||||
ignore sub bar bar' bar hyphen;
|
||||
ignore sub bar bar' hyphen;
|
||||
ignore sub [hyphen_start.arw hyphen_middle.arw] bar' bar bar;
|
||||
|
||||
# hyphen middle & end
|
||||
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_middle.arw] hyphen' [hyphen less greater bar] by hyphen_middle.arw;
|
||||
|
||||
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_middle.arw] hyphen' by hyphen_end.arw;
|
||||
|
||||
# double middles
|
||||
sub [hyphen_start.arw hyphen_middle.arw] less.spacer less' hyphen by less_less_middle.arw;
|
||||
sub [hyphen_start.arw hyphen_middle.arw] less' less hyphen by less.spacer;
|
||||
sub [hyphen_start.arw hyphen_middle.arw] greater.spacer greater' hyphen by greater_greater_middle.arw;
|
||||
sub [hyphen_start.arw hyphen_middle.arw] greater' greater hyphen by greater.spacer;
|
||||
sub [hyphen_start.arw hyphen_middle.arw] bar.spacer bar' hyphen by bar_bar_middle.arw;
|
||||
sub [hyphen_start.arw hyphen_middle.arw] bar' bar hyphen by bar.spacer;
|
||||
|
||||
# single middles
|
||||
sub [hyphen_start.arw hyphen_middle.arw] less' hyphen by less_middle.arw;
|
||||
sub [hyphen_start.arw hyphen_middle.arw] greater' hyphen by greater_middle.arw;
|
||||
sub [hyphen_start.arw hyphen_middle.arw] bar' hyphen by bar_middle.arw;
|
||||
|
||||
# double ends
|
||||
sub [hyphen_start.arw hyphen_middle.arw] less.spacer less' by less_less_end.arw;
|
||||
sub [hyphen_start.arw hyphen_middle.arw] less' less by less.spacer;
|
||||
sub [hyphen_start.arw hyphen_middle.arw] greater.spacer greater' by greater_greater_end.arw;
|
||||
sub [hyphen_start.arw hyphen_middle.arw] greater' greater by greater.spacer;
|
||||
sub [hyphen_start.arw hyphen_middle.arw] bar.spacer bar' by bar_bar_end.arw;
|
||||
sub [hyphen_start.arw hyphen_middle.arw] bar' bar by bar.spacer;
|
||||
|
||||
# single ends
|
||||
sub [hyphen_start.arw hyphen_middle.arw] less' by less_end.arw;
|
||||
sub [hyphen_start.arw hyphen_middle.arw] greater' by greater_end.arw;
|
||||
sub [hyphen_start.arw hyphen_middle.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;
|
||||
} hyphen_arrows;
|
@ -1,8 +1,14 @@
|
||||
lookup underscore_arrows {
|
||||
# middle parts
|
||||
sub [underscore_start.uarw underscore_middle.uarw] bar' underscore by bar_middle.uarw;
|
||||
|
||||
sub [underscore_start.uarw underscore_middle.uarw bar_middle.uarw] underscore' bar underscore by underscore_middle.uarw;
|
||||
sub [underscore_start.uarw underscore_middle.uarw bar_middle.uarw] underscore' underscore by underscore_middle.uarw;
|
||||
|
||||
# ends
|
||||
sub [underscore_start.uarw underscore_middle.uarw bar_middle.uarw] underscore' by underscore_end.uarw;
|
||||
|
||||
# beginnings
|
||||
sub underscore' bar underscore by underscore_start.uarw;
|
||||
sub underscore' underscore by underscore_start.uarw;
|
||||
} underscore_arrows;
|
@ -93,7 +93,13 @@ r 0 123456789 & && $ <$ <$> $> @ <= >=
|
||||
|
||||
# Arbitrary-length arrows #346
|
||||
|
||||
<--------------------------------------------<<
|
||||
<---------------------------------------------<<
|
||||
<- <-- <--- <---- ----> ---> --> ->
|
||||
>- >-- >--- >---- ----< ---< --< -<
|
||||
|- |-- |--- |---- ----| ---| --| -|
|
||||
<<- <<-- <<--- <<---- ---->> --->> -->> ->>
|
||||
>>- >>-- >>--- >>---- ----<< ---<< --<< -<<
|
||||
||- ||-- ||--- ||---- ----|| ---|| --|| -||
|
||||
----- ----< ---<< ----> --->> ----| ---||
|
||||
<---- <---< <--<< <---> <-->> <---| <--|| --<--
|
||||
<<--- <<--< <<-<< <<--> <<->> <<--| <<-|| -<<-
|
||||
@ -101,13 +107,53 @@ r 0 123456789 & && $ <$ <$> $> @ <= >=
|
||||
>>--- >>--< >>-<< >>--> >>->> >>--| >>-|| ->>-
|
||||
|---- |---< |--<< |---> |-->> |---| |--|| --|--
|
||||
||--- ||--< ||-<< ||--> ||->> ||--| ||-|| -||-
|
||||
|-<-<<->>->-|-||-|
|
||||
|--<--<<-->>-->--|--||--|
|
||||
- -- --- |> <| ||> <|| <!-- -~ .- ~-
|
||||
<<<-<<< <<<--<<< <<<---<<< <<<----<<<
|
||||
>>>->>> >>>-->>> >>>--->>> >>>---->>>
|
||||
|||-||| |||--||| |||---||| |||----|||
|
||||
|---<---<<--->>--->---|---||---|
|
||||
|
||||
<============================================<<
|
||||
< -< --< ---< ----<
|
||||
<- -<- --<- ---<- ----<-
|
||||
<-- -<-- --<-- ---<-- ----<--
|
||||
<--- -<--- --<--- ---<--- ----<---
|
||||
<---- -<---- --<---- ---<---- ----<----
|
||||
|
||||
> -> --> ---> ---->
|
||||
>- ->- -->- --->- ---->-
|
||||
>-- ->-- -->-- --->-- ---->--
|
||||
>--- ->--- -->--- --->--- ---->---
|
||||
>---- ->---- -->---- --->---- ---->----
|
||||
|
||||
| -| --| ---| ----|
|
||||
|- -|- --|- ---|- ----|-
|
||||
|-- -|-- --|-- ---|-- ----|--
|
||||
|--- -|--- --|--- ---|--- ----|---
|
||||
|---- -|---- --|---- ---|---- ----|----
|
||||
|
||||
<< -<< --<< ---<< ----<<
|
||||
<<- -<<- --<<- ---<<- ----<<-
|
||||
<<-- -<<-- --<<-- ---<<-- ----<<--
|
||||
<<--- -<<--- --<<--- ---<<--- ----<<---
|
||||
<<---- -<<---- --<<---- ---<<---- ----<<----
|
||||
|
||||
>> ->> -->> --->> ---->>
|
||||
>>- ->>- -->>- --->>- ---->>-
|
||||
>>-- ->>-- -->>-- --->>-- ---->>--
|
||||
>>--- ->>--- -->>--- --->>--- ---->>---
|
||||
>>---- ->>---- -->>---- --->>---- ---->>----
|
||||
|
||||
|| -|| --|| ---|| ----||
|
||||
||- -||- --||- ---||- ----||-
|
||||
||-- -||-- --||-- ---||-- ----||--
|
||||
||--- -||--- --||--- ---||--- ----||---
|
||||
||---- -||---- --||---- ---||---- ----||----
|
||||
|
||||
<====================================================<<
|
||||
<= <== <=== <==== ====> ===> ==> =>
|
||||
>= >== >=== >==== ====< ===< ==< =<
|
||||
|= |== |=== |==== ====| ===| ==| =|
|
||||
<<= <<== <<=== <<==== ====>> ===>> ==>> =>>
|
||||
>>= >>== >>=== >>==== ====<< ===<< ==<< =<<
|
||||
||= ||== ||=== ||==== ====|| ===|| ==|| =||
|
||||
===== ====< ===<< ====> ===>> ====| ===|| ====/
|
||||
<==== <===< <==<< <===> <==>> <===| <==|| <===/ ==<==
|
||||
<<=== <<==< <<=<< <<==> <<=>> <<==| <<=|| <<==/ =<<=
|
||||
@ -116,19 +162,102 @@ r 0 123456789 & && $ <$ <$> $> @ <= >=
|
||||
|==== |===< |==<< |===> |==>> |===| |==|| |===/ ==|==
|
||||
||=== ||==< ||=<< ||==> ||=>> ||==| ||=|| ||==/ =||=
|
||||
/==== /===< /==<< /===> /==>> /===| /==|| /===/ ==/==
|
||||
|=<=<<=>>=>=|=||=/=:=!=|
|
||||
|==<==<<==>>==>==|==||==/==:==!==|
|
||||
.= ..= := ::= != !== ?= #= ^=
|
||||
=:= =!= =/= >=:=> <=!=< |=/=| >>=:=!=/=>>
|
||||
/= /== //= //== //=== ///= ///== ///===
|
||||
= == === ====
|
||||
|===<===<<===>>===>===|===||===/===:===!===|
|
||||
|
||||
< =< ==< ===< ====<
|
||||
<= =<= ==<= ===<= ====<=
|
||||
<== =<== ==<== ===<== ====<==
|
||||
<=== =<=== ==<=== ===<=== ====<===
|
||||
<==== =<==== ==<==== ===<==== ====<====
|
||||
|
||||
> => ==> ===> ====>
|
||||
>= =>= ==>= ===>= ====>=
|
||||
>== =>== ==>== ===>== ====>==
|
||||
>=== =>=== ==>=== ===>=== ====>===
|
||||
>==== =>==== ==>==== ===>==== ====>====
|
||||
|
||||
| =| ==| ===| ====|
|
||||
|= =|= ==|= ===|= ====|=
|
||||
|== =|== ==|== ===|== ====|==
|
||||
|=== =|=== ==|=== ===|=== ====|===
|
||||
|==== =|==== ==|==== ===|==== ====|====
|
||||
|
||||
<< =<< ==<< ===<< ====<<
|
||||
<<= =<<= ==<<= ===<<= ====<<=
|
||||
<<== =<<== ==<<== ===<<== ====<<==
|
||||
<<=== =<<=== ==<<=== ===<<=== ====<<===
|
||||
<<==== =<<==== ==<<==== ===<<==== ====<<====
|
||||
|
||||
>> =>> ==>> ===>> ====>>
|
||||
>>= =>>= ==>>= ===>>= ====>>=
|
||||
>>== =>>== ==>>== ===>>== ====>>==
|
||||
>>=== =>>=== ==>>=== ===>>=== ====>>===
|
||||
>>==== =>>==== ==>>==== ===>>==== ====>>====
|
||||
|
||||
|| =|| ==|| ===|| ====||
|
||||
||= =||= ==||= ===||= ====||=
|
||||
||== =||== ==||== ===||== ====||==
|
||||
||=== =||=== ==||=== ===||=== ====||===
|
||||
||==== =||==== ==||==== ===||==== ====||====
|
||||
|
||||
/ =/ ==/ ===/ ====/
|
||||
/= =/= ==/= ===/= ====/=
|
||||
/== =/== ==/== ===/== ====/==
|
||||
/=== =/=== ==/=== ===/=== ====/===
|
||||
/==== =/==== ==/==== ===/==== ====/====
|
||||
|
||||
: =: ==: ===: ====:
|
||||
:= =:= ==:= ===:= ====:=
|
||||
:== =:== ==:== ===:== ====:==
|
||||
:=== =:=== ==:=== ===:=== ====:===
|
||||
:==== =:==== ==:==== ===:==== ====:====
|
||||
|
||||
! =! ==! ===! ====!
|
||||
!= =!= ==!= ===!= ====!=
|
||||
!== =!== ==!== ===!== ====!==
|
||||
!=== =!=== ==!=== ===!=== ====!===
|
||||
!==== =!==== ==!==== ===!==== ====!====
|
||||
|
||||
_ __ ___ ____
|
||||
_|_ __|_ _|__ __|__
|
||||
_| |_ _||_ __| ___| |__ |___
|
||||
|
||||
# Progress bars
|
||||
|
||||
[>----------]
|
||||
[=>---------]
|
||||
[==>--------]
|
||||
[===>-------]
|
||||
[====>------]
|
||||
[=====>-----]
|
||||
[======>----]
|
||||
[=======>---]
|
||||
[========>--]
|
||||
[=========>-]
|
||||
[==========>]
|
||||
|
||||
# Sanity check
|
||||
|
||||
- -- --- |> <| ||> <|| <!-- -~ .- ~-
|
||||
|
||||
= == === .= ..= := ::= != !== ?= #= ^=
|
||||
<= <=< <=> <=|
|
||||
>= >=< >=> >=|
|
||||
>=< >=<< >>=<
|
||||
=< ==< =<< |=<
|
||||
:>= <||>
|
||||
>=
|
||||
#548 >=< >=> >=| >=<< >>=<
|
||||
#479 #468 #424 #406 #355 #305 =< ==< =<< |=<
|
||||
#574 :>=
|
||||
#621 <||>
|
||||
|
||||
<<<-<<< <<<--<<< <<<---<<< <<<----<<<
|
||||
>>>->>> >>>-->>> >>>--->>> >>>---->>>
|
||||
|||-||| |||--||| |||---||| |||----|||
|
||||
//- //-- //--- //----
|
||||
///- ///-- ///--- ///----
|
||||
|
||||
<<<=<<< <<<==<<< <<<===<<< <<<====<<<
|
||||
>>>=>>> >>>==>>> >>>===>>> >>>====>>>
|
||||
|||=||| |||==||| |||===||| |||====|||
|
||||
|
||||
_ __ ___ ____ _|_ __|_ _|__ __|__
|
||||
_| |_ _||_ __| ___| |__ |___
|
||||
//= //== //=== //====
|
||||
///= ///== ///=== ///====
|
||||
|
Loading…
Reference in New Issue
Block a user