dotfiles/.emacs.d/lisp/init-packages.el

58 lines
1.7 KiB
EmacsLisp

;;; init-packages.el --- Package Configuration File -*- lexical-binding: t -*-
;;; Commentary:
;;; Code:
;; TODO - straight.el?
(require 'package)
(require 'url)
(setq package-archives '(("melpa" . "https://melpa.org/packages/")
("melpa-stable" . "https://stable.melpa.org/packages/")
("nongnu" . "https://elpa.nongnu.org/nongnu/")
("elpa" . "https://elpa.gnu.org/packages/")))
(package-initialize)
(unless package-archive-contents
(package-refresh-contents))
(unless (package-installed-p 'use-package)
(package-install 'use-package))
(require 'use-package)
(setq use-package-always-ensure t)
(use-package diminish)
(use-package paradox
:config
(paradox-enable))
(defvar vertico-extensions-dir (expand-file-name "site-lisp/vertico-extensions" user-emacs-directory))
(defvar vertico-extensions '("vertico-directory" "vertico-repeat"))
(defun fetch-vertico-extensions ()
"Download the latest versions of the required vertico extensions into vertico-extensions-dir"
(dolist (extension vertico-extensions)
(let ((ext-file (format "%s.el" extension)))
(url-copy-file
(format "https://raw.githubusercontent.com/minad/vertico/main/extensions/%s" ext-file)
(expand-file-name ext-file vertico-extensions-dir)))))
(unless (file-directory-p vertico-extensions-dir)
(make-directory vertico-extensions-dir t)
(fetch-vertico-extensions))
(use-package epl
:config
(defun my/upgrade-packages ()
(interactive)
(epl-refresh)
(epl-upgrade)
(fetch-vertico-extensions)
(message "Package upgrade finished.")))
(provide 'init-packages)
;;; init-packages.el ends here