ui/pretty-code: Added support for PragmataPro font
This commit is contained in:
parent
ee91748613
commit
b8179ca236
4 changed files with 223 additions and 13 deletions
|
@ -112,18 +112,6 @@
|
|||
("~~>" . #Xe169)
|
||||
("%%" . #Xe16a)))
|
||||
|
||||
(defun +pretty-code--correct-symbol-bounds (ligature-alist)
|
||||
"Prepend non-breaking spaces to a ligature.
|
||||
|
||||
This way `compose-region' (called by `prettify-symbols-mode') will use the
|
||||
correct width of the symbols instead of the width measured by `char-width'."
|
||||
(let ((len (length (car ligature-alist)))
|
||||
(acc (list (cdr ligature-alist))))
|
||||
(while (> len 1)
|
||||
(setq acc (cons #X00a0 (cons '(Br . Bl) acc))
|
||||
len (1- len)))
|
||||
(cons (car ligature-alist) acc)))
|
||||
|
||||
(defun +pretty-code|setup-fira-ligatures ()
|
||||
(set-fontset-font t '(#Xe100 . #Xe16f) +pretty-code-fira-code-font-name)
|
||||
(setq-default prettify-symbols-alist
|
||||
|
|
207
modules/ui/pretty-code/+pragmata-pro.el
Normal file
207
modules/ui/pretty-code/+pragmata-pro.el
Normal file
|
@ -0,0 +1,207 @@
|
|||
;;; ui/pretty-code/+pragmata-pro.el -*- lexical-binding: t; -*-
|
||||
|
||||
(defvar +pretty-code-pragmata-pro-font-name "PragmataPro"
|
||||
"Name of the Pragmata Pro ligature font.")
|
||||
|
||||
(defvar +pretty-code-pragmata-pro-font-ligatures
|
||||
'(("!!" . #XE900)
|
||||
("!=" . #XE901)
|
||||
("!==" . #XE902)
|
||||
("!!!" . #XE903)
|
||||
("!≡" . #XE904)
|
||||
("!≡≡" . #XE905)
|
||||
("!>" . #XE906)
|
||||
("!=<" . #XE907)
|
||||
("#(" . #XE920)
|
||||
("#_" . #XE921)
|
||||
("#{" . #XE922)
|
||||
("#?" . #XE923)
|
||||
("#>" . #XE924)
|
||||
("##" . #XE925)
|
||||
("#_(" . #XE926)
|
||||
("%=" . #XE930)
|
||||
("%>" . #XE931)
|
||||
("%>%" . #XE932)
|
||||
("%<%" . #XE933)
|
||||
("&%" . #XE940)
|
||||
("&&" . #XE941)
|
||||
("&*" . #XE942)
|
||||
("&+" . #XE943)
|
||||
("&-" . #XE944)
|
||||
("&/" . #XE945)
|
||||
("&=" . #XE946)
|
||||
("&&&" . #XE947)
|
||||
("&>" . #XE948)
|
||||
("$>" . #XE955)
|
||||
("***" . #XE960)
|
||||
("*=" . #XE961)
|
||||
("*/" . #XE962)
|
||||
("*>" . #XE963)
|
||||
("++" . #XE970)
|
||||
("+++" . #XE971)
|
||||
("+=" . #XE972)
|
||||
("+>" . #XE973)
|
||||
("++=" . #XE974)
|
||||
("--" . #XE980)
|
||||
("-<" . #XE981)
|
||||
("-<<" . #XE982)
|
||||
("-=" . #XE983)
|
||||
("->" . #XE984)
|
||||
("->>" . #XE985)
|
||||
("---" . #XE986)
|
||||
("-->" . #XE987)
|
||||
("-+-" . #XE988)
|
||||
("-\\/" . #XE989)
|
||||
("-|>" . #XE98A)
|
||||
("-<|" . #XE98B)
|
||||
(".." . #XE990)
|
||||
("..." . #XE991)
|
||||
("..<" . #XE992)
|
||||
(".>" . #XE993)
|
||||
(".~" . #XE994)
|
||||
(".=" . #XE995)
|
||||
("/*" . #XE9A0)
|
||||
("//" . #XE9A1)
|
||||
("/>" . #XE9A2)
|
||||
("/=" . #XE9A3)
|
||||
("/==" . #XE9A4)
|
||||
("///" . #XE9A5)
|
||||
("/**" . #XE9A6)
|
||||
(":::" . #XE9AF)
|
||||
("::" . #XE9B0)
|
||||
(":=" . #XE9B1)
|
||||
(":≡" . #XE9B2)
|
||||
(":>" . #XE9B3)
|
||||
(":=>" . #XE9B4)
|
||||
(":(" . #XE9B5)
|
||||
(":-(" . #XE9B6)
|
||||
(":)" . #XE9B7)
|
||||
(":-)" . #XE9B8)
|
||||
(":/" . #XE9B9)
|
||||
(":\\" . #XE9BA)
|
||||
(":3" . #XE9BB)
|
||||
(":D" . #XE9BC)
|
||||
(":P" . #XE9BD)
|
||||
(":>:" . #XE9BE)
|
||||
(":<:" . #XE9BF)
|
||||
("<$>" . #XE9C0)
|
||||
("<*" . #XE9C1)
|
||||
("<*>" . #XE9C2)
|
||||
("<+>" . #XE9C3)
|
||||
("<-" . #XE9C4)
|
||||
("<<" . #XE9C5)
|
||||
("<<<" . #XE9C6)
|
||||
("<<=" . #XE9C7)
|
||||
("<=" . #XE9C8)
|
||||
("<=>" . #XE9C9)
|
||||
("<>" . #XE9CA)
|
||||
("<|>" . #XE9CB)
|
||||
("<<-" . #XE9CC)
|
||||
("<|" . #XE9CD)
|
||||
("<=<" . #XE9CE)
|
||||
("<~" . #XE9CF)
|
||||
("<~~" . #XE9D0)
|
||||
("<<~" . #XE9D1)
|
||||
("<$" . #XE9D2)
|
||||
("<+" . #XE9D3)
|
||||
("<!>" . #XE9D4)
|
||||
("<@>" . #XE9D5)
|
||||
("<#>" . #XE9D6)
|
||||
("<%>" . #XE9D7)
|
||||
("<^>" . #XE9D8)
|
||||
("<&>" . #XE9D9)
|
||||
("<?>" . #XE9DA)
|
||||
("<.>" . #XE9DB)
|
||||
("</>" . #XE9DC)
|
||||
("<\\>" . #XE9DD)
|
||||
("<\">" . #XE9DE)
|
||||
("<:>" . #XE9DF)
|
||||
("<~>" . #XE9E0)
|
||||
("<**>" . #XE9E1)
|
||||
("<<^" . #XE9E2)
|
||||
("<!" . #XE9E3)
|
||||
("<@" . #XE9E4)
|
||||
("<#" . #XE9E5)
|
||||
("<%" . #XE9E6)
|
||||
("<^" . #XE9E7)
|
||||
("<&" . #XE9E8)
|
||||
("<?" . #XE9E9)
|
||||
("<." . #XE9EA)
|
||||
("</" . #XE9EB)
|
||||
("<\\" . #XE9EC)
|
||||
("<\"" . #XE9ED)
|
||||
("<:" . #XE9EE)
|
||||
("<->" . #XE9EF)
|
||||
("<!--" . #XE9F0)
|
||||
("<--" . #XE9F1)
|
||||
("<~<" . #XE9F2)
|
||||
("<==>" . #XE9F3)
|
||||
("<|-" . #XE9F4)
|
||||
("<<|" . #XE9F5)
|
||||
("==<" . #XEA00)
|
||||
("==" . #XEA01)
|
||||
("===" . #XEA02)
|
||||
("==>" . #XEA03)
|
||||
("=>" . #XEA04)
|
||||
("=~" . #XEA05)
|
||||
("=>>" . #XEA06)
|
||||
("=/=" . #XEA07)
|
||||
("≡≡" . #XEA10)
|
||||
("≡≡≡" . #XEA11)
|
||||
("≡:≡" . #XEA12)
|
||||
(">-" . #XEA20)
|
||||
(">=" . #XEA21)
|
||||
(">>" . #XEA22)
|
||||
(">>-" . #XEA23)
|
||||
(">==" . #XEA24)
|
||||
(">>>" . #XEA25)
|
||||
(">=>" . #XEA26)
|
||||
(">>^" . #XEA27)
|
||||
(">>|" . #XEA28)
|
||||
(">!=" . #XEA29)
|
||||
("??" . #XEA40)
|
||||
("?~" . #XEA41)
|
||||
("?=" . #XEA42)
|
||||
("?>" . #XEA43)
|
||||
("???" . #XEA44)
|
||||
("?." . #XEA45)
|
||||
("^=" . #XEA48)
|
||||
("^." . #XEA49)
|
||||
("^?" . #XEA4A)
|
||||
("^.." . #XEA4B)
|
||||
("^<<" . #XEA4C)
|
||||
("^>>" . #XEA4D)
|
||||
("^>" . #XEA4E)
|
||||
("\\\\" . #XEA50)
|
||||
("\\>" . #XEA51)
|
||||
("\\/-" . #XEA52)
|
||||
("@>" . #XEA57)
|
||||
("|=" . #XEA60)
|
||||
("||" . #XEA61)
|
||||
("|>" . #XEA62)
|
||||
("|||" . #XEA63)
|
||||
("|+|" . #XEA64)
|
||||
("|->" . #XEA65)
|
||||
("|-->" . #XEA66)
|
||||
("|=>" . #XEA67)
|
||||
("|==>" . #XEA68)
|
||||
("|>-" . #XEA69)
|
||||
("|<<" . #XEA6A)
|
||||
("||>" . #XEA6B)
|
||||
("|>>" . #XEA6C)
|
||||
("~=" . #XEA70)
|
||||
("~>" . #XEA71)
|
||||
("~~>" . #XEA72)
|
||||
("~>>" . #XEA73)
|
||||
("[[" . #XEA80)
|
||||
("]]" . #XEA81)
|
||||
("\">" . #XEA90))
|
||||
"Defines the character mappings for ligatures for Pragmata Pro.")
|
||||
|
||||
(defun +pretty-code|setup-pragmata-pro-ligatures ()
|
||||
(setq-default prettify-symbols-alist
|
||||
(append prettify-symbols-alist
|
||||
(mapcar #'+pretty-code--correct-symbol-bounds
|
||||
+pretty-code-pragmata-pro-font-ligatures))))
|
||||
|
||||
(add-hook 'doom-init-ui-hook #'+pretty-code|setup-pragmata-pro-ligatures)
|
|
@ -44,6 +44,19 @@ font.")
|
|||
"An alist containing a mapping of major modes to its value for
|
||||
`prettify-symbols-alist'.")
|
||||
|
||||
;;;###autodef
|
||||
(defun +pretty-code--correct-symbol-bounds (ligature-alist)
|
||||
"Prepend non-breaking spaces to a ligature.
|
||||
|
||||
This way `compose-region' (called by `prettify-symbols-mode') will use the
|
||||
correct width of the symbols instead of the width measured by `char-width'."
|
||||
(let ((len (length (car ligature-alist)))
|
||||
(acc (list (cdr ligature-alist))))
|
||||
(while (> len 1)
|
||||
(setq acc (cons #X00a0 (cons '(Br . Bl) acc))
|
||||
len (1- len)))
|
||||
(cons (car ligature-alist) acc)))
|
||||
|
||||
;;;###autodef
|
||||
(defun set-pretty-symbols! (modes &rest rest)
|
||||
"Associates string patterns with icons in certain major-modes.
|
||||
|
|
|
@ -3,7 +3,9 @@
|
|||
(cond ((featurep! +fira)
|
||||
(load! "+fira"))
|
||||
((featurep! +iosevka)
|
||||
(load! "+iosevka")))
|
||||
(load! "+iosevka"))
|
||||
((featurep! +pragmata-pro)
|
||||
(load! "+pragmata-pro")))
|
||||
|
||||
(defvar +pretty-code-enabled-modes t
|
||||
"List of major modes in which `prettify-symbols-mode' should be enabled.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue