summary refs log tree commit diff
path: root/emacs
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2022-09-17 13:48:44 -0700
committerFranck Cuny <franck@fcuny.net>2022-09-17 13:48:44 -0700
commit5ca8f68521d1f7671533729e7d496598490be937 (patch)
tree06dd1123586421fa7b5310383155299c29bd6cad /emacs
parentfeat(packages): configure straight for managing packages (diff)
downloademacs.d-5ca8f68521d1f7671533729e7d496598490be937.tar.gz
feat(packages): install all required packages via straight
Remove all the code related to installing packages, and created a new
module that lists all the packages I need to install.

This does not seem to be breaking anything so far ...

Change-Id: I02f07c6a95bfde55d0897d804ea4d32097a79842
Diffstat (limited to 'emacs')
-rw-r--r--emacs/custom/my-packages.el76
-rw-r--r--emacs/init.el75
2 files changed, 78 insertions, 73 deletions
diff --git a/emacs/custom/my-packages.el b/emacs/custom/my-packages.el
new file mode 100644
index 0000000..67bb510
--- /dev/null
+++ b/emacs/custom/my-packages.el
@@ -0,0 +1,76 @@
+;;; my-packages.el --- List of packages to install -*- lexical-binding: t -*-
+;; Author: Franck Cuny <franck@fcuny.net>
+
+;;; Commentary:
+
+;;; Code:
+
+(require 'straight)
+
+;; packages needed for LSP
+(straight-use-package 'lsp-mode)
+(straight-use-package 'lsp-ui)
+
+;; packages needed for python
+(straight-use-package 'blacken)
+(straight-use-package 'python-docstring)
+(straight-use-package 'python-mode)
+
+;; packages needed for go
+(straight-use-package 'go-mode)
+(straight-use-package 'gotest)
+
+;; packages needed for nix
+(straight-use-package 'nix-mode)
+
+;; packages needed for rust
+(straight-use-package 'rustic)
+
+;; packages needed to work with various configuration files
+(straight-use-package 'chef-mode)
+(straight-use-package 'terraform-doc)
+(straight-use-package 'terraform-mode)
+(straight-use-package 'toml-mode)
+(straight-use-package 'systemd)
+(straight-use-package 'dockerfile-mode)
+(straight-use-package 'hcl-mode)
+(straight-use-package 'jq-format)
+(straight-use-package 'yaml-mode)
+(straight-use-package 'protobuf-mode)
+
+;; packages needed for git
+(straight-use-package 'git-commit)
+(straight-use-package 'git-link)
+(straight-use-package 'git-modes)
+(straight-use-package 'magit)
+
+;; packages related to elfeed
+(straight-use-package 'elfeed)
+(straight-use-package 'elfeed-org)
+
+;; packages for eshell
+(straight-use-package 'eshell-bookmark)
+
+;; packages for various text modes
+(straight-use-package 'markdown-mode)
+(straight-use-package 'yasnippet)
+
+;; packages for tree-sitter
+(straight-use-package 'tree-sitter)
+(straight-use-package 'tree-sitter-langs)
+
+;; packages for navigation
+(straight-use-package 'consult)
+(straight-use-package 'corfu)
+(straight-use-package 'marginalia)
+(straight-use-package 'orderless)
+(straight-use-package 'vertico)
+(straight-use-package 'which-key)
+
+;; packages for interacting with tools
+(straight-use-package 'rg)
+(straight-use-package 'exec-path-from-shell)
+
+(provide 'my-packages)
+
+;;; my-packages.el ends here
diff --git a/emacs/init.el b/emacs/init.el
index 22ffb24..174f5e8 100644
--- a/emacs/init.el
+++ b/emacs/init.el
@@ -15,79 +15,6 @@
                                ;; restore after startup
                                (setq gc-cons-threshold 800000)))
 
-(require 'package)
-
-(add-to-list 'package-archives
-	     '("melpa" .
-	       "https://melpa.org/packages/"))
-
-(defvar my/package-list '(chef-mode
-                          consult
-                          corfu
-                          dockerfile-mode
-                          eglot
-                          elfeed
-                          elfeed-org
-                          eshell-bookmark
-                          exec-path-from-shell
-                          git-commit
-                          git-link
-                          git-modes
-                          go-mode
-                          gotest
-                          hcl-mode
-                          jq-format
-                          magit
-                          marginalia
-                          markdown-mode
-                          nix-mode
-                          notmuch
-                          ol-notmuch
-                          orderless
-                          protobuf-mode
-                          rg
-                          rustic
-                          systemd
-                          terraform-doc
-                          terraform-mode
-                          toml-mode
-                          tree-sitter
-                          tree-sitter-langs
-                          vertico
-                          which-key
-                          yaml-mode
-                          yasnippet)
-  "List of packages to be installed.")
-
-(defun my/packages-installed-p ()
-  "Check if all packages in `my/package-list' are installed."
-  (cl-every #'package-installed-p my/package-list))
-
-(defun my/require-package (package)
-  "Install PACKAGE unless already installed."
-  (unless (memq package my/package-list)
-    (add-to-list 'my/package-list package))
-  (unless (package-installed-p package)
-    (package-install package)))
-
-(defun my/require-packages (packages)
-  "Ensure PACKAGES are installed.
-Missing packages are installed automatically."
-  (mapc #'my/require-package packages))
-
-(defun my/install-packages ()
-  "Install all packages listed in `my/package-list'."
-  (unless (my/packages-installed-p)
-    ;; check for new packages (package versions)
-    (message "%s" "Reloading packages DB...")
-    (package-refresh-contents)
-    (message "%s" " done.")
-    ;; install the missing packages
-    (my/require-packages my/package-list)))
-
-;; run package installation
-(my/install-packages)
-
 ;; configure straight to manage packages
 (defvar bootstrap-version)
 (let ((bootstrap-file
@@ -105,6 +32,8 @@ Missing packages are installed automatically."
 (add-to-list 'load-path (expand-file-name "custom/" user-emacs-directory))
 (add-to-list 'load-path (expand-file-name "elisp/" user-emacs-directory))
 
+(require 'my-packages)
+
 (require 'my-settings)
 (require 'my-ui)
 (require 'my-dired)