|  | @@ -322,7 +322,16 @@
 | 
	
		
			
				|  |  |  (use-package rainbow-identifiers
 | 
	
		
			
				|  |  |    :ensure t
 | 
	
		
			
				|  |  |    :config
 | 
	
		
			
				|  |  | -  (add-hook 'prog-mode-hook #'rainbow-identifiers-mode))
 | 
	
		
			
				|  |  | +  (add-hook 'prog-mode-hook #'rainbow-identifiers-mode)
 | 
	
		
			
				|  |  | +  (setq rainbow-identifiers-faces-to-override
 | 
	
		
			
				|  |  | +        '(
 | 
	
		
			
				|  |  | +          font-lock-constant-face
 | 
	
		
			
				|  |  | +          font-lock-type-face
 | 
	
		
			
				|  |  | +          font-lock-function-name-face
 | 
	
		
			
				|  |  | +          font-lock-variable-name-face
 | 
	
		
			
				|  |  | +          font-lock-keyword-face
 | 
	
		
			
				|  |  | +          font-lock-string-face)))
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  (use-package rainbow-mode
 | 
	
		
			
				|  |  |    :ensure t
 | 
	
	
		
			
				|  | @@ -456,6 +465,177 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  ;;;; Builtin configs
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +(global-prettify-symbols-mode)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +(add-hook 'prog-mode-hook
 | 
	
		
			
				|  |  | +          (lambda ()
 | 
	
		
			
				|  |  | +            (setq prettify-symbols-alist
 | 
	
		
			
				|  |  | +                  (append
 | 
	
		
			
				|  |  | +                   '(
 | 
	
		
			
				|  |  | +                     ("->" . ?→)
 | 
	
		
			
				|  |  | +                     ("lambda" . ?λ)
 | 
	
		
			
				|  |  | +                     ("->" . ?→)
 | 
	
		
			
				|  |  | +                     ("<=" . ?≤)
 | 
	
		
			
				|  |  | +                     (">=" . ?≥)
 | 
	
		
			
				|  |  | +                     ("!=" . ?≠)) prettify-symbols-alist))))
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +;; List from https://github.com/cpitclaudel/.emacs.d/blob/master/lisp/prettify-alists/haskell-prettify.el
 | 
	
		
			
				|  |  | +(add-hook 'haskell-mode-hook
 | 
	
		
			
				|  |  | +            (lambda ()
 | 
	
		
			
				|  |  | +              (setq prettify-symbols-alist
 | 
	
		
			
				|  |  | +		    (append
 | 
	
		
			
				|  |  | +		     '(;; Double-struck letters
 | 
	
		
			
				|  |  | +		       ("|A|" . ?𝔸)
 | 
	
		
			
				|  |  | +		       ("|B|" . ?𝔹)
 | 
	
		
			
				|  |  | +		       ("|C|" . ?ℂ)
 | 
	
		
			
				|  |  | +		       ("|D|" . ?𝔻)
 | 
	
		
			
				|  |  | +		       ("|E|" . ?𝔼)
 | 
	
		
			
				|  |  | +		       ("|F|" . ?𝔽)
 | 
	
		
			
				|  |  | +		       ("|G|" . ?𝔾)
 | 
	
		
			
				|  |  | +		       ("|H|" . ?ℍ)
 | 
	
		
			
				|  |  | +		       ("|I|" . ?𝕀)
 | 
	
		
			
				|  |  | +		       ("|J|" . ?𝕁)
 | 
	
		
			
				|  |  | +		       ("|K|" . ?𝕂)
 | 
	
		
			
				|  |  | +		       ("|L|" . ?𝕃)
 | 
	
		
			
				|  |  | +		       ("|M|" . ?𝕄)
 | 
	
		
			
				|  |  | +		       ("|N|" . ?ℕ)
 | 
	
		
			
				|  |  | +		       ("|O|" . ?𝕆)
 | 
	
		
			
				|  |  | +		       ("|P|" . ?ℙ)
 | 
	
		
			
				|  |  | +		       ("|Q|" . ?ℚ)
 | 
	
		
			
				|  |  | +		       ("|R|" . ?ℝ)
 | 
	
		
			
				|  |  | +		       ("|S|" . ?𝕊)
 | 
	
		
			
				|  |  | +		       ("|T|" . ?𝕋)
 | 
	
		
			
				|  |  | +		       ("|U|" . ?𝕌)
 | 
	
		
			
				|  |  | +		       ("|V|" . ?𝕍)
 | 
	
		
			
				|  |  | +		       ("|W|" . ?𝕎)
 | 
	
		
			
				|  |  | +		       ("|X|" . ?𝕏)
 | 
	
		
			
				|  |  | +		       ("|Y|" . ?𝕐)
 | 
	
		
			
				|  |  | +		       ("|Z|" . ?ℤ)
 | 
	
		
			
				|  |  | +		       ("|gamma|" . ?ℽ)
 | 
	
		
			
				|  |  | +		       ("|Gamma|" . ?ℾ)
 | 
	
		
			
				|  |  | +		       ("|pi|" . ?ℼ)
 | 
	
		
			
				|  |  | +		       ("|Pi|" . ?ℿ)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		       ;; Types
 | 
	
		
			
				|  |  | +		       ("::" . ?∷)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		       ;; Quantifiers
 | 
	
		
			
				|  |  | +		       ("forall" . ?∀)
 | 
	
		
			
				|  |  | +		       ("exists" . ?∃)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		       ;; Arrows
 | 
	
		
			
				|  |  | +		       ("-->" . ?⟶)
 | 
	
		
			
				|  |  | +		       ("<-" . ?←)
 | 
	
		
			
				|  |  | +		       ("<--" . ?⟵)
 | 
	
		
			
				|  |  | +		       ("<->" . ?↔)
 | 
	
		
			
				|  |  | +		       ("<-->" . ?⟷)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		       ("=>" . ?⇒)
 | 
	
		
			
				|  |  | +		       ("==>" . ?⟹)
 | 
	
		
			
				|  |  | +		       ("<==" . ?⟸)
 | 
	
		
			
				|  |  | +		       ("<=>" . ?⇔)
 | 
	
		
			
				|  |  | +		       ("<==>" . ?⟺)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		       ("|->" . ?↦)
 | 
	
		
			
				|  |  | +		       ("|-->" . ?⟼)
 | 
	
		
			
				|  |  | +		       ("<-|" . ?↤)
 | 
	
		
			
				|  |  | +		       ("<--|" . ?⟻)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		       ("|=>" . ?⤇)
 | 
	
		
			
				|  |  | +		       ("|==>" . ?⟾)
 | 
	
		
			
				|  |  | +		       ("<=|" . ?⤆)
 | 
	
		
			
				|  |  | +		       ("<==|" . ?⟽)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		       ("~>" . ?⇝)
 | 
	
		
			
				|  |  | +		       ("<~" . ?⇜)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		       (">->" . ?↣)
 | 
	
		
			
				|  |  | +		       ("<-<" . ?↢)
 | 
	
		
			
				|  |  | +		       ("->>" . ?↠)
 | 
	
		
			
				|  |  | +		       ("<<-" . ?↞)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		       (">->>" . ?⤖)
 | 
	
		
			
				|  |  | +		       ("<<-<" . ?⬻)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		       ("<|-" . ?⇽)
 | 
	
		
			
				|  |  | +		       ("-|>" . ?⇾)
 | 
	
		
			
				|  |  | +		       ("<|-|>" . ?⇿)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		       ("<-/-" . ?↚)
 | 
	
		
			
				|  |  | +		       ("-/->" . ?↛)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		       ("<-|-" . ?⇷)
 | 
	
		
			
				|  |  | +		       ("-|->" . ?⇸)
 | 
	
		
			
				|  |  | +		       ("<-|->" . ?⇹)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		       ("<-||-" . ?⇺)
 | 
	
		
			
				|  |  | +		       ("-||->" . ?⇻)
 | 
	
		
			
				|  |  | +		       ("<-||->" . ?⇼)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		       ("-o->" . ?⇴)
 | 
	
		
			
				|  |  | +		       ("<-o-" . ?⬰)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		       ;; Boolean operators
 | 
	
		
			
				|  |  | +		       ("not" . ?¬)
 | 
	
		
			
				|  |  | +		       ("&&" . ?∧)
 | 
	
		
			
				|  |  | +		       ("||" . ?∨)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		       ;; Relational operators
 | 
	
		
			
				|  |  | +		       ("==" . ?≡)
 | 
	
		
			
				|  |  | +		       ("/=" . ?≠)
 | 
	
		
			
				|  |  | +		       ("<=" . ?≤)
 | 
	
		
			
				|  |  | +		       (">=" . ?≥)
 | 
	
		
			
				|  |  | +		       ("/<" . ?≮)
 | 
	
		
			
				|  |  | +		       ("/>" . ?≯)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		       ;; Containers / Collections
 | 
	
		
			
				|  |  | +		       ("++" . ?⧺)
 | 
	
		
			
				|  |  | +		       ("+++" . ?⧻)
 | 
	
		
			
				|  |  | +		       ("|||" . ?⫴)
 | 
	
		
			
				|  |  | +		       ("empty" . ?∅)
 | 
	
		
			
				|  |  | +		       ("elem" . ?∈)
 | 
	
		
			
				|  |  | +		       ("notElem" . ?∉)
 | 
	
		
			
				|  |  | +		       ("member" . ?∈)
 | 
	
		
			
				|  |  | +		       ("notMember" . ?∉)
 | 
	
		
			
				|  |  | +		       ("union" . ?∪)
 | 
	
		
			
				|  |  | +		       ("intersection" . ?∩)
 | 
	
		
			
				|  |  | +		       ("isSubsetOf" . ?⊆)
 | 
	
		
			
				|  |  | +                       ("isProperSubsetOf" . ?⊂)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                       ;; Other
 | 
	
		
			
				|  |  | +                       ("<<" . ?≪)
 | 
	
		
			
				|  |  | +                       (">>" . ?≫)
 | 
	
		
			
				|  |  | +                       ("<<<" . ?⋘)
 | 
	
		
			
				|  |  | +                       (">>>" . ?⋙)
 | 
	
		
			
				|  |  | +                       ("<|" . ?⊲)
 | 
	
		
			
				|  |  | +                       ("|>" . ?⊳)
 | 
	
		
			
				|  |  | +                       ("><" . ?⋈)
 | 
	
		
			
				|  |  | +                       ("mempty" . ?∅)
 | 
	
		
			
				|  |  | +                       ("mappend" . ?⊕)
 | 
	
		
			
				|  |  | +                       ("<*>" . ?⊛)
 | 
	
		
			
				|  |  | +                       ("undefined" . ?⊥)
 | 
	
		
			
				|  |  | +                       (":=" . ?≔)
 | 
	
		
			
				|  |  | +                       ("=:" . ?≕)
 | 
	
		
			
				|  |  | +                       ("=def" . ?≝)
 | 
	
		
			
				|  |  | +                       ("=?" . ?≟)
 | 
	
		
			
				|  |  | +                       ("..." . ?…)) prettify-symbols-alist))))
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +(setq python--prettify-symbols-alist
 | 
	
		
			
				|  |  | +  (append
 | 
	
		
			
				|  |  | +   '(("def" .      #x2131)
 | 
	
		
			
				|  |  | +     ("not" .      #x2757)
 | 
	
		
			
				|  |  | +     ("return" .   #x27fc)
 | 
	
		
			
				|  |  | +     ("yield" .    #x27fb)
 | 
	
		
			
				|  |  | +     ("or" . ?∨)
 | 
	
		
			
				|  |  | +     ("and" . ?∧)
 | 
	
		
			
				|  |  | +     ("None" . ?⊥)
 | 
	
		
			
				|  |  | +     ("set()" . ?∅)
 | 
	
		
			
				|  |  | +     ("not in" . ?∉)
 | 
	
		
			
				|  |  | +     ("in" . ?∈)
 | 
	
		
			
				|  |  | +     ("is not" . ?≢)
 | 
	
		
			
				|  |  | +     ("is" . ?≡)) python--prettify-symbols-alist))
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  (use-package flyspell
 | 
	
		
			
				|  |  |    :config
 | 
	
		
			
				|  |  |    ;; move point to previous error
 |