Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
232 lines (224 sloc) 7.84 KB
;; -*- lexical-binding: t -*-
;; Enable ligatures without prettify-symbols
;; Taken from https://gist.github.com/DeLaGuardo/fe1f3d9397d6ef7468460d54d5601156
;; For emacs 25
(when (>= emacs-major-version 25)
(setq prettify-symbols-unprettify-at-point 'right-edge))
(defconst pragmatapro-prettify-symbols-alist
(mapcar (lambda (s)
(if (>= emacs-major-version 25)
`(,(first s)
.
,(vconcat
(apply 'vconcat (make-list
(- (length (car s)) 1)
(vector (decode-char 'ucs #X0020) '(Br . Bl))))
(vector (decode-char 'ucs (second s)))))
(cons (first s) (second s))))
'(("[ERROR]" #XE380)
("[DEBUG]" #XE381)
("[INFO]" #XE382)
("[WARN]" #XE383)
("[WARNING]" #XE384)
("[ERR]" #XE385)
("[FATAL]" #XE386)
("[TRACE]" #XE387)
("[FIXME]" #XE388)
("[TODO]" #XE389)
("[BUG]" #XE38A)
("[NOTE]" #XE38B)
("[HACK]" #XE38C)
("[MARK]" #XE38D)
("!!" #XE900)
("!=" #XE901)
("!==" #XE902)
("!!!" #XE903)
("!≡" #XE904)
("!≡≡" #XE905)
("!>" #XE906)
("#(" #XE920)
("#_" #XE921)
("#{" #XE922)
("#?" #XE923)
("#>" #XE924)
("##" #XE925)
("%=" #XE930)
("%>" #XE931)
("<~" #XE932)
("&%" #XE940)
("&&" #XE941)
("&*" #XE942)
("&+" #XE943)
("&-" #XE944)
("&/" #XE945)
("&=" #XE946)
("&&&" #XE947)
("&>" #XE948)
("***" #XE960)
("*=" #XE961)
("*/" #XE962)
("*>" #XE963)
("++" #XE970)
("+++" #XE971)
("+=" #XE972)
("+>" #XE973)
("++=" #XE974)
("--" #XE980)
("-<" #XE981)
("-<<" #XE982)
("-=" #XE983)
("->" #XE984)
("->>" #XE985)
("---" #XE986)
("-->" #XE987)
("-+-" #XE988)
("-\\/" #XE989)
(".." #XE990)
("..." #XE991)
("..<" #XE992)
(".>" #XE993)
(".~" #XE994)
(".=" #XE995)
("/*" #XE9A0)
("//" #XE9A1)
("/>" #XE9A2)
("/=" #XE9A3)
("/==" #XE9A4)
("///" #XE9A5)
("/**" #XE9A6)
("::" #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)
("==<" #XEA00)
("==" #XEA01)
("===" #XEA02)
("==>" #XEA03)
("=>" #XEA04)
("=~" #XEA05)
("=>>" #XEA06)
("=/=" #XEA07)
("≡≡" #XEA10)
("≡≡≡" #XEA11)
("≡:≡" #XEA12)
(">-" #XEA20)
(">=" #XEA21)
(">>" #XEA22)
(">>-" #XEA23)
(">==" #XEA24)
(">>>" #XEA25)
(">=>" #XEA26)
(">>^" #XEA27)
("??" #XEA40)
("?~" #XEA41)
("?=" #XEA42)
("?>" #XEA43)
("???" #XEA44)
("^=" #XEA48)
("^." #XEA49)
("^?" #XEA4A)
("^.." #XEA4B)
("^<<" #XEA4C)
("^>>" #XEA4D)
("^>" #XEA4E)
("\\\\" #XEA50)
("\\>" #XEA51)
("\\/-" #XEA52)
("@>" #XEA57)
("|=" #XEA60)
("||" #XEA61)
("|>" #XEA62)
("|||" #XEA63)
("|+|" #XEA64)
("|->" #XEA65)
("|-->" #XEA66)
("|=>" #XEA67)
("|==>" #XEA68)
("~=" #XEA70)
("~>" #XEA71)
("~~>" #XEA72)
("~>>" #XEA73)
("\">" #XEA90))))
(defun cogent/add-pragmatapro-prettify-symbols-alist ()
(dolist (alias pragmatapro-prettify-symbols-alist)
(push alias prettify-symbols-alist)))
(add-hook 'prog-mode-hook
#'cogent/add-pragmatapro-prettify-symbols-alist)
(defun cogent/prettify-symbols-anywhere-compose-p (start end _match)
"Like the default, but don't care if we're in a comment"
;; Check that the chars should really be composed into a symbol.
(let* ((syntaxes-beg (if (memq (char-syntax (char-after start)) '(?w ?_))
'(?w ?_) '(?. ?\\)))
(syntaxes-end (if (memq (char-syntax (char-before end)) '(?w ?_))
'(?w ?_) '(?. ?\\))))
(not (or (memq (char-syntax (or (char-before start) ?\s)) syntaxes-beg)
(memq (char-syntax (or (char-after end) ?\s)) syntaxes-end)))))
(add-hook 'prog-mode-hook
#'(lambda () (setq-local prettify-symbols-compose-predicate
#'cogent/prettify-symbols-anywhere-compose-p)))
(global-prettify-symbols-mode +1)
(provide 'cogent-pragmata)