Personalizzazioni per emacs
This commit is contained in:
68
.emacs.rc/rc.el
Normal file
68
.emacs.rc/rc.el
Normal file
@@ -0,0 +1,68 @@
|
||||
(add-to-list 'package-archives
|
||||
'("melpa" . "https://melpa.org/packages/") t)
|
||||
;; (add-to-list 'package-archives
|
||||
;; '("melpa-stable" . "https://stable.melpa.org/packages/") t)
|
||||
|
||||
(defvar rc/package-contents-refreshed nil)
|
||||
(defvar rc/required-packages nil)
|
||||
|
||||
(defun rc/package-refresh-contents-once ()
|
||||
(when (not rc/package-contents-refreshed)
|
||||
(setq rc/package-contents-refreshed t)
|
||||
(package-refresh-contents)))
|
||||
|
||||
(defun rc/require-one-package (package)
|
||||
(push package rc/required-packages)
|
||||
(when (not (package-installed-p package))
|
||||
(rc/package-refresh-contents-once)
|
||||
(package-install package)))
|
||||
|
||||
(defun rc/require (&rest packages)
|
||||
(dolist (package packages)
|
||||
(rc/require-one-package package)))
|
||||
|
||||
(defun rc/require-theme (theme)
|
||||
(let ((theme-package (->> theme
|
||||
(symbol-name)
|
||||
(funcall (-flip #'concat) "-theme")
|
||||
(intern))))
|
||||
(rc/require theme-package)
|
||||
(load-theme theme t)))
|
||||
|
||||
(rc/require 'dash)
|
||||
(require 'dash)
|
||||
|
||||
(rc/require 'dash-functional)
|
||||
(require 'dash-functional)
|
||||
|
||||
(defun rc/package-reqs (package)
|
||||
(let ((package-desc
|
||||
(->> package-alist
|
||||
(alist-get package)
|
||||
(car))))
|
||||
(when package-desc
|
||||
(package-desc-reqs package-desc))))
|
||||
|
||||
(defun rc/package-dependencies (package)
|
||||
(->> package
|
||||
(rc/package-reqs)
|
||||
(-map #'car)
|
||||
(cons package)))
|
||||
|
||||
(defun rc/package-expand-dependencies (packages)
|
||||
(->> packages
|
||||
(-map #'rc/package-dependencies)
|
||||
(-flatten)
|
||||
(remove-duplicates)))
|
||||
|
||||
(defun rc/unused-packages ()
|
||||
(let ((all-package (rc/package-expand-dependencies rc/required-packages)))
|
||||
(->> package-alist
|
||||
(-map #'car)
|
||||
(-filter (-lambda (package)
|
||||
(not (-contains? all-package package)))))))
|
||||
|
||||
(defun rc/remove-unused-packages ()
|
||||
(interactive)
|
||||
(message "Unused packages: %s" (rc/unused-packages)))
|
||||
|
||||
Reference in New Issue
Block a user