Allow ligatures in emacs
This commit is contained in:
parent
0082f114a3
commit
d7b1e1abb7
1 changed files with 136 additions and 0 deletions
136
emacs-init-el
136
emacs-init-el
|
|
@ -1,4 +1,6 @@
|
||||||
(require 'package)
|
(require 'package)
|
||||||
|
(set-language-environment "UTF-8")
|
||||||
|
(set-default-coding-systems 'utf-8)
|
||||||
(setq package-enable-at-startup nil)
|
(setq package-enable-at-startup nil)
|
||||||
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
|
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
|
||||||
;;(add-to-list 'package-archives '("marmalade" . "https://marmalade-repo.org/packages/"))
|
;;(add-to-list 'package-archives '("marmalade" . "https://marmalade-repo.org/packages/"))
|
||||||
|
|
@ -150,3 +152,137 @@
|
||||||
;; If there is more than one, they won't work right.
|
;; If there is more than one, they won't work right.
|
||||||
'(default ((t (:inherit nil :stipple nil :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 142 :width normal :foundry "unci" :family "MonofurForPowerline Nerd Font"))))
|
'(default ((t (:inherit nil :stipple nil :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 142 :width normal :foundry "unci" :family "MonofurForPowerline Nerd Font"))))
|
||||||
'(fixed-pitch ((t (:family "Iosevka")))))
|
'(fixed-pitch ((t (:family "Iosevka")))))
|
||||||
|
|
||||||
|
;;; Fira code
|
||||||
|
;; This works when using emacs --daemon + emacsclient
|
||||||
|
(add-hook 'after-make-frame-functions (lambda (frame) (set-fontset-font t '(#Xe100 . #Xe16f) "Fira Code Symbol")))
|
||||||
|
;; This works when using emacs without server/client
|
||||||
|
(set-fontset-font t '(#Xe100 . #Xe16f) "Fira Code Symbol")
|
||||||
|
;; I haven't found one statement that makes both of the above situations work, so I use both for now
|
||||||
|
|
||||||
|
(defconst fira-code-font-lock-keywords-alist
|
||||||
|
(mapcar (lambda (regex-char-pair)
|
||||||
|
`(,(car regex-char-pair)
|
||||||
|
(0 (prog1 ()
|
||||||
|
(compose-region (match-beginning 1)
|
||||||
|
(match-end 1)
|
||||||
|
;; The first argument to concat is a string containing a literal tab
|
||||||
|
,(concat " " (list (decode-char 'ucs (cadr regex-char-pair)))))))))
|
||||||
|
'(("\\(www\\)" #Xe100)
|
||||||
|
("[^/]\\(\\*\\*\\)[^/]" #Xe101)
|
||||||
|
("\\(\\*\\*\\*\\)" #Xe102)
|
||||||
|
("\\(\\*\\*/\\)" #Xe103)
|
||||||
|
("\\(\\*>\\)" #Xe104)
|
||||||
|
("[^*]\\(\\*/\\)" #Xe105)
|
||||||
|
("\\(\\\\\\\\\\)" #Xe106)
|
||||||
|
("\\(\\\\\\\\\\\\\\)" #Xe107)
|
||||||
|
("\\({-\\)" #Xe108)
|
||||||
|
("\\(\\[\\]\\)" #Xe109)
|
||||||
|
("\\(::\\)" #Xe10a)
|
||||||
|
("\\(:::\\)" #Xe10b)
|
||||||
|
("[^=]\\(:=\\)" #Xe10c)
|
||||||
|
("\\(!!\\)" #Xe10d)
|
||||||
|
("\\(!=\\)" #Xe10e)
|
||||||
|
("\\(!==\\)" #Xe10f)
|
||||||
|
("\\(-}\\)" #Xe110)
|
||||||
|
("\\(--\\)" #Xe111)
|
||||||
|
("\\(---\\)" #Xe112)
|
||||||
|
("\\(-->\\)" #Xe113)
|
||||||
|
("[^-]\\(->\\)" #Xe114)
|
||||||
|
("\\(->>\\)" #Xe115)
|
||||||
|
("\\(-<\\)" #Xe116)
|
||||||
|
("\\(-<<\\)" #Xe117)
|
||||||
|
("\\(-~\\)" #Xe118)
|
||||||
|
("\\(#{\\)" #Xe119)
|
||||||
|
("\\(#\\[\\)" #Xe11a)
|
||||||
|
("\\(##\\)" #Xe11b)
|
||||||
|
("\\(###\\)" #Xe11c)
|
||||||
|
("\\(####\\)" #Xe11d)
|
||||||
|
("\\(#(\\)" #Xe11e)
|
||||||
|
("\\(#\\?\\)" #Xe11f)
|
||||||
|
("\\(#_\\)" #Xe120)
|
||||||
|
("\\(#_(\\)" #Xe121)
|
||||||
|
("\\(\\.-\\)" #Xe122)
|
||||||
|
("\\(\\.=\\)" #Xe123)
|
||||||
|
("\\(\\.\\.\\)" #Xe124)
|
||||||
|
("\\(\\.\\.<\\)" #Xe125)
|
||||||
|
("\\(\\.\\.\\.\\)" #Xe126)
|
||||||
|
("\\(\\?=\\)" #Xe127)
|
||||||
|
("\\(\\?\\?\\)" #Xe128)
|
||||||
|
("\\(;;\\)" #Xe129)
|
||||||
|
("\\(/\\*\\)" #Xe12a)
|
||||||
|
("\\(/\\*\\*\\)" #Xe12b)
|
||||||
|
("\\(/=\\)" #Xe12c)
|
||||||
|
("\\(/==\\)" #Xe12d)
|
||||||
|
("\\(/>\\)" #Xe12e)
|
||||||
|
("\\(//\\)" #Xe12f)
|
||||||
|
("\\(///\\)" #Xe130)
|
||||||
|
("\\(&&\\)" #Xe131)
|
||||||
|
("\\(||\\)" #Xe132)
|
||||||
|
("\\(||=\\)" #Xe133)
|
||||||
|
("[^|]\\(|=\\)" #Xe134)
|
||||||
|
("\\(|>\\)" #Xe135)
|
||||||
|
("\\(\\^=\\)" #Xe136)
|
||||||
|
("\\(\\$>\\)" #Xe137)
|
||||||
|
("\\(\\+\\+\\)" #Xe138)
|
||||||
|
("\\(\\+\\+\\+\\)" #Xe139)
|
||||||
|
("\\(\\+>\\)" #Xe13a)
|
||||||
|
("\\(=:=\\)" #Xe13b)
|
||||||
|
("[^!/]\\(==\\)[^>]" #Xe13c)
|
||||||
|
("\\(===\\)" #Xe13d)
|
||||||
|
("\\(==>\\)" #Xe13e)
|
||||||
|
("[^=]\\(=>\\)" #Xe13f)
|
||||||
|
("\\(=>>\\)" #Xe140)
|
||||||
|
("\\(<=\\)" #Xe141)
|
||||||
|
("\\(=<<\\)" #Xe142)
|
||||||
|
("\\(=/=\\)" #Xe143)
|
||||||
|
("\\(>-\\)" #Xe144)
|
||||||
|
("\\(>=\\)" #Xe145)
|
||||||
|
("\\(>=>\\)" #Xe146)
|
||||||
|
("[^-=]\\(>>\\)" #Xe147)
|
||||||
|
("\\(>>-\\)" #Xe148)
|
||||||
|
("\\(>>=\\)" #Xe149)
|
||||||
|
("\\(>>>\\)" #Xe14a)
|
||||||
|
("\\(<\\*\\)" #Xe14b)
|
||||||
|
("\\(<\\*>\\)" #Xe14c)
|
||||||
|
("\\(<|\\)" #Xe14d)
|
||||||
|
("\\(<|>\\)" #Xe14e)
|
||||||
|
("\\(<\\$\\)" #Xe14f)
|
||||||
|
("\\(<\\$>\\)" #Xe150)
|
||||||
|
("\\(<!--\\)" #Xe151)
|
||||||
|
("\\(<-\\)" #Xe152)
|
||||||
|
("\\(<--\\)" #Xe153)
|
||||||
|
("\\(<->\\)" #Xe154)
|
||||||
|
("\\(<\\+\\)" #Xe155)
|
||||||
|
("\\(<\\+>\\)" #Xe156)
|
||||||
|
("\\(<=\\)" #Xe157)
|
||||||
|
("\\(<==\\)" #Xe158)
|
||||||
|
("\\(<=>\\)" #Xe159)
|
||||||
|
("\\(<=<\\)" #Xe15a)
|
||||||
|
("\\(<>\\)" #Xe15b)
|
||||||
|
("[^-=]\\(<<\\)" #Xe15c)
|
||||||
|
("\\(<<-\\)" #Xe15d)
|
||||||
|
("\\(<<=\\)" #Xe15e)
|
||||||
|
("\\(<<<\\)" #Xe15f)
|
||||||
|
("\\(<~\\)" #Xe160)
|
||||||
|
("\\(<~~\\)" #Xe161)
|
||||||
|
("\\(</\\)" #Xe162)
|
||||||
|
("\\(</>\\)" #Xe163)
|
||||||
|
("\\(~@\\)" #Xe164)
|
||||||
|
("\\(~-\\)" #Xe165)
|
||||||
|
("\\(~=\\)" #Xe166)
|
||||||
|
("\\(~>\\)" #Xe167)
|
||||||
|
("[^<]\\(~~\\)" #Xe168)
|
||||||
|
("\\(~~>\\)" #Xe169)
|
||||||
|
("\\(%%\\)" #Xe16a)
|
||||||
|
;; ("\\(x\\)" #Xe16b) This ended up being hard to do properly so i'm leaving it out.
|
||||||
|
("[^:=]\\(:\\)[^:=]" #Xe16c)
|
||||||
|
("[^\\+<>]\\(\\+\\)[^\\+<>]" #Xe16d)
|
||||||
|
("[^\\*/<>]\\(\\*\\)[^\\*/<>]" #Xe16f))))
|
||||||
|
|
||||||
|
(defun add-fira-code-symbol-keywords ()
|
||||||
|
(font-lock-add-keywords nil fira-code-font-lock-keywords-alist))
|
||||||
|
|
||||||
|
(add-hook 'prog-mode-hook
|
||||||
|
#'add-fira-code-symbol-keywords)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue