many changes

This commit is contained in:
Iñaki Dominguez
2022-12-30 22:49:12 +01:00
parent 6a3f50144b
commit 2240c18f18
3 changed files with 653 additions and 27 deletions

2
.gitignore vendored
View File

@@ -1,10 +1,12 @@
transient/
elpa/
eln-cache/
eshell/
auto-save-list/
recentf
network-security.data
*.elc
*.eld
themes/*.elc
*.*~
custom.el

231
init.el
View File

@@ -32,6 +32,9 @@ There are two things you can do about this warning:
;; Configure packages with use-package
(use-package all-the-icons
:ensure t)
(use-package asm-mode
:config
(setq asm-comment-char ?\#)
@@ -74,6 +77,31 @@ There are two things you can do about this warning:
("C-x C-f" . counsel-find-file))
:hook (find-file . (lambda () (linum-mode 1))))
(use-package dashboard
:ensure t
:init
:config
(dashboard-setup-startup-hook)
(setq dashboard-startup-banner 1
dashboard-banner-logo-title "Beep boop."
dashboard-center-content t
dashboard-set-heading-icons t
dashboard-set-file-icons t
dashboard-show-shortcuts t
dashboard-set-navigator t
dashboard-set-init-info t)
(setq dashboard-items '((recents . 10)
(bookmarks . 10)
(registers . 5)))
(setq initial-buffer-choice (lambda () (get-buffer-create "*dashboard*")))
(add-hook 'server-after-make-frame-hook
(lambda ()
(switch-to-buffer dashboard-buffer-name)
(dashboard-mode)
(dashboard-insert-startupify-lists)
(dashboard-refresh-buffer))))
(use-package dracula-theme
:config (load-theme 'dracula t))
@@ -92,11 +120,24 @@ There are two things you can do about this warning:
:init
(setq evil-want-fine-undo t
evil-want-keybinding nil)
(defun evil-custom-exit ()
(interactive)
(if (= (length (window-list)) 1)
(tab-bar-close-tab)
(delete-window)))
:config
(evil-mode 1)
(evil-set-undo-system 'undo-tree)
(define-key evil-normal-state-map "\C-t" nil)
(define-key evil-motion-state-map "\C-t" nil)
(define-key evil-normal-state-map "\C-w" nil)
(define-key evil-motion-state-map "\C-w" nil)
(define-key evil-motion-state-map "\C-f" nil)
(evil-set-initial-state 'term-mode 'emacs)
(evil-set-initial-state 'dired-mode 'emacs))
(evil-set-initial-state 'neotree-mode 'emacs)
(evil-set-initial-state 'dired-mode 'emacs)
(evil-set-initial-state 'dashboard-mode 'emacs)
(evil-ex-define-cmd "q" #'evil-custom-exit))
(use-package evil-collection
:after (:all evil magit)
@@ -118,6 +159,30 @@ There are two things you can do about this warning:
:mode ("\\.hs\\'" . haskell-mode)
:interpreter ("haskell" . haskell-mode))
(use-package hideshow
:hook ((prog-mode . hs-minor-mode))
:init
(defun hs-toggle-hiding-fixed (&optional e)
"Toggle hiding/showing of a block.
See `hs-hide-block' and `hs-show-block'.
Argument E should be the event that triggered this action."
(interactive)
(hs-life-goes-on
(when e (posn-set-point (event-end e)))
;; (posn-set-point (event-end e))
(if (hs-already-hidden-p)
(hs-show-block)
(hs-hide-block))))
(defun toggle-fold ()
(interactive)
(save-excursion
(end-of-line)
(hs-toggle-hiding-fixed)))
:config
(advice-add 'hs-toggle-hiding :override #'hs-toggle-hiding-fixed))
(use-package ivy
:init
(setq ivy-use-virtual-buffers t
@@ -126,6 +191,10 @@ There are two things you can do about this warning:
:config
(ivy-mode 1))
(use-package json-mode
:mode (("\\.json\\'" . json-mode)
("\\.json.tmpl\\'" . json-mode)))
(use-package less-css-mode
:mode ("\\.less\\'" . less-css-mode))
@@ -182,18 +251,41 @@ There are two things you can do about this warning:
(cons "C-r" 'term-send-reverse-search-history)
(cons "C-y" 'term-send-raw)))
:bind (([f5] . multi-term)
("C-<tab>" . multi-term-next)
("C-<iso-lefttab>" . multi-term-prev)))
("C-M-<tab>" . multi-term-next)
("C-M-<iso-lefttab>" . multi-term-prev)))
(use-package nasm-mode
:mode ("\\.nasm\\'" . nasm-mode))
(use-package neotree
:config
(setq neo-theme (if (display-graphic-p) 'icons 'arrow))
(add-hook 'server-after-make-frame-hook
(lambda ()
(setq neo-theme (if (display-graphic-p) 'icons 'arrow))))
(add-hook 'neotree-mode-hook
(lambda ()
(local-set-key (kbd "C-f") #'neotree-toggle)
(local-set-key (kbd "RET") #'neotree-change-root)))
:bind
("C-f" . neotree-find)
([f8] . neotree-toggle))
(use-package page-break-lines
:config
(page-break-lines-mode t))
(use-package pkg-info)
(use-package plsql
:load-path "~/.emacs.d/lisp/plsql.el"
:mode ("\\.plsql\\'" . plsql-mode))
(use-package pragmatapro-lig
:load-path "~/.emacs.d/lisp/pragmatapro-lig.el"
:config
(pragmatapro-lig-global-mode))
(use-package python
:mode ("\\.py\\'" . python-mode)
:interpreter ("python" . python-mode))
@@ -211,6 +303,71 @@ There are two things you can do about this warning:
(use-package swiper
:bind (("C-s" . swiper)))
(use-package tab-bar
:after dracula-theme
:bind
("C-t" . tab-bar-new-tab)
("C-w" . tab-bar-close-tab)
("C-<tab>" . tab-bar-switch-to-next-tab)
("C-<iso-lefttab>" . tab-bar-switch-to-prev-tab)
:custom
(tab-bar-show 1)
(tab-bar-close-button-show nil)
(tab-bar-new-tab-choice "*dashboard*")
(tab-bar-tab-hints t)
(tab-bar-separator "")
(tab-bar-format '(tab-bar-format-tabs tab-bar-separator))
(tab-bar-tab-name-format-function #'custom-tab-bar-tab-name-format-default)
(tab-bar-close-last-tab-choice 'delete-frame)
:init
(defgroup custom-tab-bar nil
"Custom tweaks to tar-bar-mode."
:group 'tab-bar)
(defface custom-tab-bar-tab
`((t :inherit 'tab-bar-tab
:foreground "SeaGreen2"))
"Face for active tab in tab-bar."
:group 'custom-tab-bar)
(defface custom-tab-bar-tab-hint
`((t :inherit 'custom-tab-bar-tab
:foreground "deep pink"))
"Face for active tab hint in tab-bar."
:group 'custom-tab-bar)
(defface custom-tab-bar-tab-inactive
`((t :inherit 'tab-bar-tab-inactive
:foreground "dark gray"))
"Face for inactive tab in tab-bar."
:group 'custom-tab-bar)
(defface custom-tab-bar-tab-hint-inactive
`((t :inherit 'custom-tab-bar-tab-inactive
:foreground "thistle"))
"Face for inactive tab hint in tab-bar."
:group 'custom-tab-bar)
(defun custom-tab-bar-tab-name-format-default (tab i)
(let* ((current-p (eq (car tab) 'current-tab))
(tab-face (if (and current-p (display-graphic-p))
'custom-tab-bar-tab
'custom-tab-bar-tab-inactive))
(hint-face (if (and current-p (display-graphic-p))
'custom-tab-bar-tab-hint
'custom-tab-bar-tab-hint-inactive)))
(concat (propertize (if tab-bar-tab-hints
(format " %d:" (- i 1))
" ")
'face hint-face)
(propertize
(concat
(alist-get 'name tab)
(or (and tab-bar-close-button-show
(not (eq tab-bar-close-button-show
(if current-p 'non-selected 'selected)))
tab-bar-close-button)
"")
" ")
'face tab-face))))
:config
(tab-bar-mode t)
(use-package term
:config
;; https://web.archive.org/web/20181111010613/ ->
@@ -294,6 +451,8 @@ There are two things you can do about this warning:
(use-package yaml-mode
:mode (("\\.yml\\'" . yaml-mode)
("\\.yml.tmpl\\'" . yaml-mode)
("\\.yaml.tmpl\\'" . yaml-mode)
("\\.yaml\\'" . yaml-mode)))
;; Configure emacs general settings with use-package
@@ -306,7 +465,9 @@ There are two things you can do about this warning:
(delete-file (concat buffer-file-name "c"))))
(defun gcm-scroll-down () (interactive) (scroll-up 1))
(defun gcm-scroll-up () (interactive) (scroll-down 1))
(global-prettify-symbols-mode +1)
:config
(add-to-list 'default-frame-alist '(tab-bar . custom-tab-bar))
(when (fboundp 'menu-bar-mode) (menu-bar-mode -1))
(when (fboundp 'tool-bar-mode) (tool-bar-mode -1))
(when (fboundp 'scroll-bar-mode) (scroll-bar-mode -1))
@@ -314,34 +475,47 @@ There are two things you can do about this warning:
(setq frame-title-format
'(buffer-file-name "%f" (dired-directory dired-directory "%b"))
custom-file "~/.emacs.d/custom.el"
auth-source-save-behavior nil
enable-local-variables nil
inhibit-startup-screen t
vc-follow-symlinks t
inhibit-compacting-font-caches 1
mouse-wheel-scroll-amount '(3 ((shift) . 3))
mouse-wheel-progressive-speed nil
mouse-wheel-follow-mouse 't
scroll-conservatively 10000
scroll-step 1
auto-save-interval 1000
auto-window-vscroll nil
backup-by-copying t
backup-directory-alist '(("." . "~/.saves"))
delete-old-versions t
kept-new-versions 6
kept-old-versions 2
version-control t
backup-directory-alist `((".*" . ,temporary-file-directory))
auto-save-file-name-transforms `((".*" ,temporary-file-directory t))
vc-mode 1
ring-bell-function 'ignore
column-number-mode 1
savehist-mode 1)
auth-source-save-behavior nil
enable-local-variables nil
inhibit-startup-screen t
vc-follow-symlinks t
inhibit-compacting-font-caches 1
mouse-wheel-scroll-amount '(3 ((shift) . 3))
mouse-wheel-progressive-speed nil
mouse-wheel-follow-mouse 't
scroll-conservatively 10000
scroll-step 1
auto-save-interval 1000
auto-window-vscroll nil
backup-by-copying t
backup-directory-alist '(("." . "~/.saves"))
delete-old-versions t
kept-new-versions 6
kept-old-versions 2
kmacro-ring-max 30
version-control t
backup-directory-alist `((".*" . ,temporary-file-directory))
auto-save-file-name-transforms `((".*" ,temporary-file-directory t))
vc-mode 1
ring-bell-function 'ignore
column-number-mode 1
savehist-mode 1
x-stretch-cursor t
inhibit-startup-message t
initial-scratch-message ""
inhibit-startup-echo-area-message t)
;;
(setq-default scroll-up-aggressively 0.01
scroll-down-aggressively 0.01
indent-tabs-mode t
tab-width 8)
(set-frame-font "PragmataPro Mono Liga 13" nil t)
(add-to-list 'default-frame-alist '(font . "PragmataPro Mono Liga 13"))
(add-to-list 'default-frame-alist '(fullscreen . maximized))
(set-face-attribute 'tab-bar nil :font "PragmataPro Mono Liga 13")
(add-hook 'server-after-make-frame-hook
(lambda ()
(set-face-attribute 'tab-bar nil :font "PragmataPro Mono Liga 13"))))
(global-auto-revert-mode 1)
(fringe-mode '(0 . 0))
(global-hl-line-mode 1)
@@ -355,6 +529,9 @@ There are two things you can do about this warning:
(define-key minibuffer-local-completion-map [escape] 'minibuffer-keyboard-quit)
(define-key minibuffer-local-must-match-map [escape] 'minibuffer-keyboard-quit)
(define-key minibuffer-local-isearch-map [escape] 'minibuffer-keyboard-quit)
(bind-keys :prefix-map toggle-map
:prefix "C-x t"
("f" . toggle-fold))
:bind (("C-<down>" . gcm-scroll-down)
("C-<next>" . gcm-scroll-down)
("C-<up>" . gcm-scroll-up)

447
lisp/pragmatapro-lig.el Normal file
View File

@@ -0,0 +1,447 @@
;; Emacs PramgataPro 0.828 Ligatures Support
;; Author: lumiknit (aasr4r4@gmail.com)
;; Version: 20200211
;; Usage: Use "M-x 'pragmatapro-lig-mode' RET" to turn on ligature minor mode.
;; Or, use 'pragmatapro-lig-global-mode to turn it on globally.
;; I recommend you to compile this file before load it.
(eval-when-compile (defconst pragmatapro-lig-alist
'( ;;("[ERROR]" #Xe2c0)
;; ("[DEBUG]" #Xe2c1)
;; ("[INFO]" #Xe2c2)
;; ("[WARN]" #Xe2c3)
;; ("[WARNING]" #Xe2c4)
;; ("[ERR]" #Xe2c5)
;; ("[FATAL]" #Xe2c6)
;; ("[TRACE]" #Xe2c7)
;; ("[FIXME]" #Xe2c8)
;; ("[TODO]" #Xe2c9)
;; ("[BUG]" #Xe2ca)
;; ("[NOTE]" #Xe2cb)
;; ("[HACK]" #Xe2cc)
;; ("[MARK]" #Xe2cd)
;; ("[FAIL]" #Xe2ce)
;; ("// ERROR" #Xe2e0)
;; ("// DEBUG" #Xe2e1)
;; ("// INFO" #Xe2e2)
;; ("// WARN" #Xe2e3)
;; ("// WARNING" #Xe2e4)
;; ("// ERR" #Xe2e5)
;; ("// FATAL" #Xe2e6)
;; ("// TRACE" #Xe2e7)
;; ("// FIXME" #Xe2e8)
;; ("// TODO" #Xe2e9)
;; ("// BUG" #Xe2ea)
;; ("// NOTE" #Xe2eb)
;; ("// HACK" #Xe2ec)
;; ("// MARK" #Xe2ed)
;; ("// FAIL" #Xe2ee)
;; ("# ERROR" #Xe2f0)
;; ("# DEBUG" #Xe2f1)
;; ("# INFO" #Xe2f2)
;; ("# WARN" #Xe2f3)
;; ("# WARNING" #Xe2f4)
;; ("# ERR" #Xe2f5)
;; ("# FATAL" #Xe2f6)
;; ("# TRACE" #Xe2f7)
;; ("# FIXME" #Xe2f8)
;; ("# TODO" #Xe2f9)
;; ("# BUG" #Xe2fa)
;; ("# NOTE" #Xe2fb)
;; ("# HACK" #Xe2fc)
;; ("# MARK" #Xe2fd)
;; ("# FAIL" #Xe2fe)
("!!" #Xe900)
("!=" #Xe901)
("!==" #Xe902)
("!!!" #Xe903)
;; ("!≡" #Xe904)
;; ("!≡≡" #Xe905)
("!>" #Xe906)
("!=<" #Xe907)
("#(" #Xe920)
("#_" #Xe921)
("#{" #Xe922)
("#?" #Xe923)
("#>" #Xe924)
("##" #Xe925)
("#_(" #Xe926)
("%=" #Xe930)
("%>" #Xe931)
("%>%" #Xe932)
("%<%" #Xe933)
;; ("<~" #Xe93f)
("&%" #Xe940)
("&&" #Xe941)
("&*" #Xe942)
("&+" #Xe943)
("&-" #Xe944)
("&/" #Xe945)
("&=" #Xe946)
("&&&" #Xe947)
("&>" #Xe948)
("$>" #Xe955)
;; ("~>" #Xe95f)
("***" #Xe960)
("*=" #Xe961)
("*/" #Xe962)
("*>" #Xe963)
("++" #Xe970)
("+++" #Xe971)
("+=" #Xe972)
("+>" #Xe973)
("++=" #Xe974)
("--" #Xe980)
("-<" #Xe981)
("-<<" #Xe982)
("-=" #Xe983)
("->" #Xe984)
("->>" #Xe985)
("---" #Xe986)
("-->" #Xe987)
("-+-" #Xe988)
("-\\/" #Xe989)
("-|>" #Xe98a)
("-<|" #Xe98b)
("->-" #Xe98c)
("-<-" #Xe98d)
(".." #Xe990)
("..." #Xe991)
("..<" #Xe992)
(".>" #Xe993)
(".~" #Xe994)
(".=" #Xe995)
("/*" #Xe9a0)
("//" #Xe9a1)
("/>" #Xe9a2)
("/=" #Xe9a3)
("/==" #Xe9a4)
("///" #Xe9a5)
("/**" #Xe9a6)
(":::" #Xe9af)
("::" #Xe9b0)
(":=" #Xe9b1)
(":>" #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)
("<<|" #Xe9f6)
("<-<" #Xe9f7)
("<-->" #Xe9f8)
("<<==" #Xe9f9)
("<==" #Xe9fa)
("=<<" #Xea00)
("==" #Xea01)
("===" #Xea02)
("==>" #Xea03)
("=>" #Xea04)
("=~" #Xea05)
("=>>" #Xea06)
("=/=" #Xea07)
("=~=" #Xea08)
("==>>" #Xea09)
("=>=" #Xea0a)
("=<=" #Xea0b)
("=<" #Xea0c)
;;("≡≡" #Xea10)
;;("≡≡≡" #Xea11)
;;("≡:≡" #Xea12)
(">-" #Xea20)
(">=" #Xea21)
(">>" #Xea22)
(">>-" #Xea23)
(">>=" #Xea24)
(">>>" #Xea25)
(">=>" #Xea26)
(">>^" #Xea27)
(">>|" #Xea28)
(">!=" #Xea29)
(">->" #Xea2a)
("??" #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)
("|-" #Xea6d)
("||-" #Xea6e)
("~=" #Xea70)
("~>" #Xea71)
("~~>" #Xea72)
("~>>" #Xea73)
("[[" #Xea80)
("]]" #Xea81)
("\">" #Xea90)
("_|_" #Xea97)
)))
(defconst pragmatapro-lig-table
(eval-when-compile
(let ((v (make-vector 128 nil)))
(dolist (i pragmatapro-lig-alist)
(let ((s (car i))
(f (min 127 (aref (car i) 0)))
(c (cadr i)))
(let ((a (aref v f))
(r (substring s 1))
(lr (1- (length s))))
(aset
v f
(cons
(max (if a (car a) 0) lr)
(cons (list r lr
(vconcat (mapcar
'string
(concat (make-string lr ?\s)
(string c)))))
(and a (cdr a))))))))
(vconcat (mapcar (lambda (l)
(if l
(cons (car l)
(sort (cdr l) (lambda (x y)
(> (cadr x) (cadr y)))))
nil))
v)))))
(defconst pragmatapro-lig-use-table
(eval-when-compile
(let ((v (make-vector 128 nil)))
(dolist (i pragmatapro-lig-alist)
(let ((s (car i)))
(dotimes (j (length s))
(aset v (aref s j) t))))
v)))
(defun pragmatapro-guess-range (start end)
(save-excursion
(let ((s start) (e end)
(ss (progn (goto-char start) (line-beginning-position)))
(ee (progn (goto-char end) (line-end-position))))
(while (and (> s ss)
(aref pragmatapro-lig-use-table
(min 127 (or (char-before s) 127))))
(setq s (1- s)))
(while (and (< e ee)
(aref pragmatapro-lig-use-table
(min 127 (or (char-after e) 127))))
(setq e (1+ e)))
(cons s e))))
(defun pragmatapro-remove-ligatures (start end)
"Remove ligatures in start-end in the current buffer"
(let ((p (text-property-any start end 'ligature t))
(e nil))
(while p
(setq e (or (next-single-property-change p 'ligature) end))
(remove-list-of-text-properties p e '(ligature display))
(setq p (text-property-any e end 'ligature t)))))
(defun pragmatapro-update-ligatures (start end &optional l)
"Update ligatures in start-end in the current buffer"
(let ((modified (buffer-modified-p))
(inhibit-read-only t)
(case-fold-search nil))
(save-excursion
(let ((z (pragmatapro-guess-range (or start (point))
(or end (point)))))
(goto-char (car z))
(setq end (cdr z)))
(when (<= (point) end)
(pragmatapro-remove-ligatures (point) end))
(while (< (point) end)
(let* ((c (char-after))
(l (and c (aref pragmatapro-lig-table (min 127 c)))))
(forward-char 1)
(when l
(catch 'break
(let ((pt (point)))
(dolist (p (cdr l))
(when (string-prefix-p
(car p)
(buffer-substring-no-properties
pt (min (+ pt (car l)) (1+ (buffer-size)))))
(forward-char (cadr p))
(let ((s (1- pt)) (th (caddr p)))
(put-text-property s (point) 'ligature t)
(dotimes (i (1+ (cadr p)))
(put-text-property (+ s i) (+ s i 1) 'display
(aref th i)))
(throw 'break nil))))))))))
(set-buffer-modified-p modified)))
(define-minor-mode pragmatapro-lig-mode
"Compose pragmatapro's ligatures."
:lighter " PragLig"
(let ((inhibit-modification-hooks t)
(inhibit-read-only t))
(if pragmatapro-lig-mode
(progn ; Turn on
(add-hook 'after-change-functions 'pragmatapro-update-ligatures t t)
(when (> (buffer-size) 0)
(pragmatapro-update-ligatures 1 (buffer-size))))
;; Turn off
(remove-hook 'after-change-functions 'pragmatapro-update-ligatures t)
(when (> (buffer-size) 0)
(pragmatapro-remove-ligatures 1 (buffer-size)))))
pragmatapro-lig-mode)
(defun pragmatapro-lig-mode-on ()
(pragmatapro-lig-mode 1))
(define-globalized-minor-mode pragmatapro-lig-global-mode
pragmatapro-lig-mode
pragmatapro-lig-mode-on)
;; ---
(defvar pragmatapro-icons
(eval-when-compile
(let ((tt (make-hash-table :size 127 :test 'equal)))
(puthash "lisp" "()" tt)
(puthash "lisp interaction" "()\xf41f" tt)
(puthash "scheme" "(λ)" tt)
(puthash "inferior scheme" "(λ)\xf41f" tt)
(puthash "dired" "\xe5fe" tt)
(puthash "html" "\xe736" tt)
(puthash "web" "\xe796" tt)
(puthash "scala" "\xe737" tt)
(puthash "c" "\xe61e" tt)
(puthash "c/*l" "\xe61e" tt)
(puthash "c++" "\xe61d" tt)
(puthash "c++//l" "\xe61d" tt)
(puthash "java//l" "\xe738" tt)
(puthash "java" "\xe738" tt)
(puthash "ruby" "\xe791" tt)
(puthash "inf-ruby" "\xe791\xf41f" tt)
(puthash "rails" "\xe73b" tt)
(puthash "python" "\xe606" tt)
(puthash "inferior python" "\xe606\xf41f" tt)
(puthash "php" "\xe73d" tt)
(puthash "markdown" "\xe73e" tt)
(puthash "css" "\xe749" tt)
(puthash "sass" "\xe74b" tt)
(puthash "javascript" "\xe60c" tt)
(puthash "js" "\xe74e" tt)
(puthash "typescript" "\xe628" tt)
(puthash "jquery" "\xe750" tt)
(puthash "coffee" "\xe751" tt)
(puthash "angularjs" "\xe753" tt)
(puthash "swift" "\xe755" tt)
(puthash "less" "\xe758" tt)
(puthash "clojure" "\xe76a" tt)
(puthash "cidar" "\xe76a" tt)
(puthash "haskell" "\xe777" tt)
(puthash "haskell-cabal" "\xe777 Cabal" tt)
(puthash "interactive-haskell" "\xe777\xf41f" tt)
(puthash "hscompilation" "\xe777\x2611" tt)
(puthash "emacs-lisp" "(\xe779)" tt)
(puthash "prolog" "\xe7a1" tt)
(puthash "fsharp" "\xe7a7" tt)
(puthash "rust" "\xe7a8" tt)
(puthash "d" "\xe7af" tt)
(puthash "erlang" "\xe7b1" tt)
(puthash "lua" "\xe620" tt)
(puthash "dart" "\xe798" tt)
(puthash "dart//l" "\xe798" tt)
(puthash "go" "\xe627" tt)
(puthash "git" "\xe630" tt)
(puthash "comint" "\xf41f" tt)
(puthash "fundamental" "\xf4a5" tt)
(puthash "shell" "\xe7a2" tt)
(puthash "elixir" "\xf499" tt)
(puthash "debugger" "\xf4a0" tt)
tt)))
(defun pragmatapro-get-mode-icon ()
(let ((z (gethash (downcase mode-name) pragmatapro-icons)))
(if z z mode-name)))
(provide 'pragmatapro-lig)