;;; 07-custom-ligatures --- PragmataPro specific ligatures
|
|
|
|
;;; Commentary:
|
|
;; Enable ligatures without prettify-symbols
|
|
|
|
;; All ligatures (for testing)
|
|
|
|
;; [ERROR]
|
|
;; [DEBUG]
|
|
;; [INFO]
|
|
;; [WARN]
|
|
;; [WARNING]
|
|
;; [ERR]
|
|
;; [FATAL]
|
|
;; [TRACE]
|
|
;; !!
|
|
;; !=
|
|
;; !==
|
|
;; !!!
|
|
;; !≡
|
|
;; !≡≡
|
|
;; !>
|
|
;; #(
|
|
;; #_
|
|
;; #{
|
|
;; #?
|
|
;; #>
|
|
;; ##
|
|
;; %=
|
|
;; %>
|
|
;; &%
|
|
;; &&
|
|
;; &*
|
|
;; &+
|
|
;; &-
|
|
;; &/
|
|
;; &=
|
|
;; &&&
|
|
;; &>
|
|
;; ***
|
|
;; *=
|
|
;; */
|
|
;; *>
|
|
;; ++
|
|
;; +++
|
|
;; +=
|
|
;; +>
|
|
;; ++=
|
|
;; --
|
|
;; -<
|
|
;; -<<
|
|
;; -=
|
|
;; ->
|
|
;; ->>
|
|
;; ---
|
|
;; -->
|
|
;; -+-
|
|
;; -\/
|
|
;; ..
|
|
;; ...
|
|
;; ..<
|
|
;; .>
|
|
;; .~
|
|
;; .=
|
|
;; /*
|
|
;; //
|
|
;; />
|
|
;; /=
|
|
;; /==
|
|
;; ///
|
|
;; /**
|
|
;; ::
|
|
;; :=
|
|
;; :≡
|
|
;; :>
|
|
;; :=>
|
|
;; <$>
|
|
;; <*
|
|
;; <*>
|
|
;; <+>
|
|
;; <-
|
|
;; <<
|
|
;; <<<
|
|
;; <<=
|
|
;; <=
|
|
;; <=>
|
|
;; <>
|
|
;; <|>
|
|
;; <<-
|
|
;; <|
|
|
;; <=<
|
|
;; <~
|
|
;; <~~
|
|
;; <<~
|
|
;; <$
|
|
;; <+
|
|
;; <!>
|
|
;; <@>
|
|
;; <#>
|
|
;; <%>
|
|
;; <^>
|
|
;; <&>
|
|
;; <?>
|
|
;; <.>
|
|
;; </>
|
|
;; <\>
|
|
;; <">
|
|
;; <:>
|
|
;; <~>
|
|
;; <**>
|
|
;; <<^
|
|
;; <!
|
|
;; <@
|
|
;; <#
|
|
;; <%
|
|
;; <^
|
|
;; <&
|
|
;; <?
|
|
;; <.
|
|
;; </
|
|
;; <\
|
|
;; <"
|
|
;; <:
|
|
;; <->
|
|
;; <!--
|
|
;; <--
|
|
;; <~<
|
|
;; <==>
|
|
;; ==<
|
|
;; ==
|
|
;; ===
|
|
;; ==>
|
|
;; =>
|
|
;; =~
|
|
;; =>>
|
|
;; =/=
|
|
;; ≡≡
|
|
;; ≡≡≡
|
|
;; ≡:≡
|
|
;; >-
|
|
;; >=
|
|
;; >>
|
|
;; >>-
|
|
;; >==
|
|
;; >>>
|
|
;; >=>
|
|
;; >>^
|
|
;; ??
|
|
;; ?~
|
|
;; ?=
|
|
;; ?>
|
|
;; ???
|
|
;; ^=
|
|
;; ^.
|
|
;; ^?
|
|
;; ^..
|
|
;; ^<<
|
|
;; ^>>
|
|
;; ^>
|
|
;; \\
|
|
;; \>
|
|
;; \/-
|
|
;; @>
|
|
;; |=
|
|
;; ||
|
|
;; |>
|
|
;; |||
|
|
;; |+|
|
|
;; |->
|
|
;; |-->
|
|
;; |=>
|
|
;; |==>
|
|
;; ~=
|
|
;; ~>
|
|
;; ~~>
|
|
;; ~>>
|
|
;; ">
|
|
|
|
;;; Code:
|
|
|
|
(defconst pragmatapro-fontlock-keywords-alist
|
|
(mapcar (lambda (regex-char-pair)
|
|
`(,(car regex-char-pair)
|
|
(0 (prog1 ()
|
|
(compose-region (match-beginning 1)
|
|
(match-end 1)
|
|
,(concat (list ?\C-i)
|
|
(list (decode-char 'ucs (cadr regex-char-pair)))))))))
|
|
'(("\\(\\[ERROR\\]\\)" #XE380)
|
|
("\\(\\[DEBUG\\]\\)" #XE381)
|
|
("\\(\\[INFO\\]\\)" #XE382)
|
|
("\\(\\[WARN\\]\\)" #XE383)
|
|
("\\(\\[WARNING\\]\\)" #XE384)
|
|
("\\(\\[ERR\\]\\)" #XE385)
|
|
("\\(\\[FATAL\\]\\)" #XE386)
|
|
("\\(\\[TRACE\\]\\)" #XE387)
|
|
("\\(!!\\)" #XE900)
|
|
("\\(!=\\)" #XE901)
|
|
("\\(!==\\)" #XE902)
|
|
("\\(!!!\\)" #XE903)
|
|
("\\(!≡\\)" #XE904)
|
|
("\\(!≡≡\\)" #XE905)
|
|
("[^<]\\(!>\\)" #XE906)
|
|
("\\(#(\\)" #XE920)
|
|
("\\(#_\\)" #XE921)
|
|
("\\(#{\\)" #XE922)
|
|
("\\(#\\?\\)" #XE923)
|
|
("[^<]\\(#>\\)" #XE924)
|
|
("\\(##\\)" #XE925)
|
|
("\\(%=\\)" #XE930)
|
|
("[^<]\\(%>\\)" #XE931)
|
|
("\\(&%\\)" #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)
|
|
("\\(<\\*\\)" #XE9C1)
|
|
("\\(<\\*>\\)" #XE9C2)
|
|
("[^<]\\(<-\\)" #XE9C4)
|
|
("[^-]\\(<<\\)" #XE9C5)
|
|
("\\(<<<\\)" #XE9C6)
|
|
("\\(<<=\\)" #XE9C7)
|
|
("[^<]\\(<=\\)" #XE9C8)
|
|
("\\(<=>\\)" #XE9C9)
|
|
("\\(<>\\)" #XE9CA)
|
|
("\\(<<-\\)" #XE9CC)
|
|
("\\(<|\\)" #XE9CD)
|
|
("\\(<|>\\)" #XE9CB)
|
|
("\\(<=<\\)" #XE9CE)
|
|
("[^<]\\(<~\\)" #XE9CF)
|
|
("\\(<~~\\)" #XE9D0)
|
|
("\\(<<~\\)" #XE9D1)
|
|
("\\(<\\$\\)" #XE9D2)
|
|
("\\(<\\$>\\)" #XE9C0)
|
|
("\\(<\\+\\)" #XE9D3)
|
|
("\\(<\\+>\\)" #XE9C3)
|
|
("\\(<~>\\)" #XE9E0)
|
|
("\\(<\\*\\*>\\)" #XE9E1)
|
|
("\\(<<\\^\\)" #XE9E2)
|
|
("\\(<!\\)" #XE9E3)
|
|
("\\(<!>\\)" #XE9D4)
|
|
("\\(<@\\)" #XE9E4)
|
|
("\\(<#\\)" #XE9E5)
|
|
("\\(<#>\\)" #XE9D6)
|
|
("\\(<%\\)" #XE9E6)
|
|
("\\(<%>\\)" #XE9D7)
|
|
("[^<]\\(<\\^\\)" #XE9E7)
|
|
("\\(<&\\)" #XE9E8)
|
|
("\\(<&>\\)" #XE9D9)
|
|
("\\(<\\?\\)" #XE9E9)
|
|
("\\(<\\.\\)" #XE9EA)
|
|
("\\(<\\.>\\)" #XE9DB)
|
|
("\\(</\\)" #XE9EB)
|
|
("\\(</>\\)" #XE9DC)
|
|
("\\(<\\\\\\)" #XE9EC)
|
|
("\\(<\"\\)" #XE9ED)
|
|
("\\(<\">\\)" #XE9DE)
|
|
("\\(<:\\)" #XE9EE)
|
|
("\\(<:>\\)" #XE9DF)
|
|
("\\(<->\\)" #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)
|
|
("\\(<\\?>\\)" #XE9DA)
|
|
("\\(\\?\\?\\?\\)" #XEA44)
|
|
("\\(\\^=\\)" #XEA48)
|
|
("\\(\\^\\.\\)" #XEA49)
|
|
("\\(\\^\\?\\)" #XEA4A)
|
|
("\\(\\^\\.\\.\\)" #XEA4B)
|
|
("\\(\\^<<\\)" #XEA4C)
|
|
("\\(\\^>\\)" #XEA4E)
|
|
("\\(\\^>>\\)" #XEA4D)
|
|
("\\(<\\^>\\)" #XE9D8)
|
|
("[^\\\\]\\(\\\\\\\\\\)" #XEA50)
|
|
("[^<]\\(\\\\>\\)" #XEA51)
|
|
("\\(<\\\\>\\)" #XE9DD)
|
|
("\\(\\\\/-\\)" #XEA52)
|
|
("\\(@>\\)" #XEA57)
|
|
("\\(<@>\\)" #XE9D5)
|
|
("\\(|=\\)" #XEA60)
|
|
("\\(||\\)" #XEA61)
|
|
("[^<]\\(|>\\)" #XEA62)
|
|
("\\(|||\\)" #XEA63)
|
|
("\\(|\\+|\\)" #XEA64)
|
|
("\\(|->\\)" #XEA65)
|
|
("\\(|-->\\)" #XEA66)
|
|
("\\(|=>\\)" #XEA67)
|
|
("\\(|==>\\)" #XEA68)
|
|
("\\(~=\\)" #XEA70)
|
|
("[^~<]\\(~>\\)" #XEA71)
|
|
("\\(~~>\\)" #XEA72)
|
|
("\\(~>>\\)" #XEA73)
|
|
("[^<]\\(\">\\)" #XEA90))))
|
|
|
|
(defun add-pragmatapro-symbol-keywords ()
|
|
"Add the symbols to font-lock."
|
|
(font-lock-add-keywords nil pragmatapro-fontlock-keywords-alist))
|
|
|
|
(add-hook 'prog-mode-hook
|
|
#'add-pragmatapro-symbol-keywords)
|
|
(add-hook 'emacs-lisp-mode-hook
|
|
#'add-pragmatapro-symbol-keywords)
|
|
|
|
(provide '07-custom-ligatures)
|
|
;;; 07-custom-ligatures.el ends here
|