1
0
Fork 0
mirror of synced 2024-06-01 10:20:25 +12:00

Fixed ligatures precedence in <<*>> <<<*>>> <<+>> <<<+>>> <<$>> <<<$>>>` (closes #410)

This commit is contained in:
Nikita Prokopov 2018-10-01 00:10:24 +03:00
parent 4a66a5e489
commit ed548c76ae
3 changed files with 49 additions and 8 deletions

View file

@ -9,7 +9,7 @@ All notable changes to this project will be documented in this file.
- Redrew `{|` `|}` `[|` `|]` ([#643])
- Removed `{.` `.}` ([#635]), thin backslash ([#577])
- Disabled ligatures in `(?=` `(?<=` `(?:` ([#624]), `>=<` ([#548]), `{|}` `[|]` ([#593])
- Fixed ligatures precedence in `<||>` ([#621]), `:>=` ([#574])
- Fixed ligatures precedence in `<||>` ([#621]), `:>=` ([#574]), `<<*>>` `<<<*>>>` `<<+>>` <<<+>>>` `<<$>>` `<<<$>>>` ([#410])
- Fixed incorrectly swapped box drawing characters `╵` and `╷` ([#595])
- Adjusted vertical position of `<=` `>=` to align with `<` `>` ([#483])

File diff suppressed because one or more lines are too long

View file

@ -24,41 +24,80 @@
" ignore sub slash asterisk' asterisk asterisk;\n"
" ignore sub asterisk' asterisk asterisk slash;\n")
;; #624 (?=
["question" "equal"]
" ignore sub parenleft question' equal;\n"
;; #624 (?<=
["less" "equal"]
" ignore sub parenleft question less' equal;\n"
;; #624 (?:
["question" "colon"]
" ignore sub parenleft question' colon;\n"
;; #621 <||>
["less" "bar" "bar"]
" ignore sub less' bar bar greater;\n"
["bar" "bar" "greater"]
" ignore sub less bar' bar greater;\n"
;; #574 :>=
["colon" "greater"]
" ignore sub colon' greater equal;\n"
;; #548 >=<
["greater" "equal"]
" ignore sub greater' equal less;\n"
["equal" "less"]
" ignore sub greater equal' less;\n"
;; #593 {|}
["braceleft" "bar"]
" ignore sub braceleft' bar braceright;\n"
["bar" "braceright"]
" ignore sub braceleft bar' braceright;\n"
;; #593 [|]
["bracketleft" "bar"]
" ignore sub bracketleft' bar bracketright;\n"
["bar" "bracketright"]
" ignore sub bracketleft bar' bracketright;\n"
;; #410 <*>> <+>> <$>>
["greater" "greater"]
(str " ignore sub asterisk greater' greater;\n"
" ignore sub plus greater' greater;\n"
" ignore sub dollar greater' greater;\n")
;; #410 <*>>> <+>>> <$>>>
["greater" "greater" "greater"]
(str " ignore sub asterisk greater' greater greater;\n"
" ignore sub plus greater' greater greater;\n"
" ignore sub dollar greater' greater greater;\n")
;; #410 <<*> <<+> <<$>
["less" "less"]
(str " ignore sub less' less asterisk;\n"
" ignore sub less' less plus;\n"
" ignore sub less' less dollar;\n")
;; #410 <<<*> <<<+> <<<$>
["less" "less" "less"]
(str " ignore sub less' less less asterisk;\n"
" ignore sub less' less less plus;\n"
" ignore sub less' less less dollar;\n")
})
(def skip-ignores? #{
;; #410 <<*>> <<+>> <<$>>
["less" "asterisk" "greater"]
["less" "plus" "greater"]
["less" "dollar" "greater"]
})
(defn liga->rule
@ -80,8 +119,9 @@
3 (let [[a b c] liga]
(str/replace
(str "lookup 1_2_3 {\n"
" ignore sub 1 1' 2 3;\n"
" ignore sub 1' 2 3 3;\n"
(when-not (skip-ignores? liga)
(str " ignore sub 1 1' 2 3;\n"
" ignore sub 1' 2 3 3;\n"))
(get ignores liga)
" sub LIG LIG 3' by 1_2_3.liga;\n"
" sub LIG 2' 3 by LIG;\n"