From 38c0f134c0b233b0f28412226723b059dc5058b7 Mon Sep 17 00:00:00 2001 From: Jesse Braham Date: Fri, 14 Feb 2025 21:37:29 +0100 Subject: [PATCH] Add some more packages and fix some existing configuration --- .gitignore | 4 +++- init.el | 26 +++++++++++++++++++++----- key-bindings.el | 1 + pkg/flycheck.el | 1 - pkg/lsp.el | 6 ++++++ pkg/nerd-icons-dired.el | 8 ++++++++ pkg/nerd-icons.el | 6 ++++++ pkg/savehist.el | 4 ++++ pkg/super-save.el | 4 ++-- pkg/vertico.el | 9 +++++++++ 10 files changed, 60 insertions(+), 9 deletions(-) create mode 100644 pkg/lsp.el create mode 100644 pkg/nerd-icons-dired.el create mode 100644 pkg/nerd-icons.el create mode 100644 pkg/savehist.el create mode 100644 pkg/vertico.el diff --git a/.gitignore b/.gitignore index d41506b..f0a5fb5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ auto-save-list/ +backup/ elpa/ transient/ -*~ +history +recentf diff --git a/init.el b/init.el index ed4455b..4369c85 100644 --- a/init.el +++ b/init.el @@ -23,19 +23,32 @@ (defconst user-init-dir "~/.emacs.d/") (defun load-user-file (file) + "Load FILE in the current user's configuration directory. + File names which are prefixed with an underscore will be ignored." (interactive "f") - "Load a file in the current user's configuration directory" - (load-file (expand-file-name file user-init-dir))) + (unless (string-prefix-p "_" (file-name-nondirectory file)) + (load-file (expand-file-name file user-init-dir)))) (defun load-user-dir (dir) + "Recursively load all files in directory DIR. + DIR should be relative to the user's configuration directory." (interactive "f") - "Recursively load all files in a given directory, relative to the user's - configuration directory" (setq config-dir (file-name-concat user-init-dir dir)) (dolist (file (directory-files-recursively config-dir "")) (load-user-file file))) +;; Configure how and where backup files are created: + +(setq backup-directory-alist '(("." . "~/.emacs.d/backup")) + backup-by-copying t ; Don't delink hardlinks + version-control t ; Use version numbers on backups + delete-old-versions t ; Automatically delete excess backups + kept-new-versions 20 ; How many of the newest versions to keep + kept-old-versions 5 ; How many of the oldest versions to keep + ) + + ;; Load all user-defined configuration files: (load-user-file "editor.el") @@ -54,8 +67,11 @@ ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. + '(git-gutter:added-sign " +") + '(git-gutter:deleted-sign " -") + '(git-gutter:modified-sign " *") '(package-selected-packages - '(yaml-mode toml-mode markdown-mode yasnippet which-key super-save solaire-mode smartparens rainbow-delimiters magit hl-todo git-gutter flycheck diminish crux))) + '(yaml-mode toml-mode markdown-mode yasnippet which-key vertico super-save solaire-mode smartparens rainbow-delimiters nerd-icons nerd-icons-dired magit lsp-mode hl-todo hl-line git-gutter flycheck diminish crux))) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. diff --git a/key-bindings.el b/key-bindings.el index 2109d82..0d8cf7e 100644 --- a/key-bindings.el +++ b/key-bindings.el @@ -10,5 +10,6 @@ ;; Enable code folding in programming modes, and set some more reasonable ;; shortcuts. (add-hook 'prog-mode-hook #'hs-minor-mode) +(add-hook 'hs-minor-mode-hook (lambda () (diminish 'hs-minor-mode))) (global-set-key (kbd "C-c C-h") (kbd "C-c @ C-h")) ; Hide a block (global-set-key (kbd "C-c C-s") (kbd "C-c @ C-s")) ; Show a block diff --git a/pkg/flycheck.el b/pkg/flycheck.el index 09a67ae..6060d93 100644 --- a/pkg/flycheck.el +++ b/pkg/flycheck.el @@ -2,7 +2,6 @@ ;; https://github.com/flycheck/flycheck (use-package flycheck :ensure t - :defer t :diminish flycheck-mode :config (setq flycheck-standard-error-navigation nil) diff --git a/pkg/lsp.el b/pkg/lsp.el new file mode 100644 index 0000000..89a98ad --- /dev/null +++ b/pkg/lsp.el @@ -0,0 +1,6 @@ +;; Language server protocol support. +;; https://github.com/emacs-lsp/lsp-mode +(use-package lsp-mode + :ensure t + :commands (lsp lsp-deferred) + :hook ((lsp-mode . lsp-enable-which-key-integration))) diff --git a/pkg/nerd-icons-dired.el b/pkg/nerd-icons-dired.el new file mode 100644 index 0000000..e4e2ebd --- /dev/null +++ b/pkg/nerd-icons-dired.el @@ -0,0 +1,8 @@ +;; Use nerd icons in dired mode. +;; https://github.com/rainstormstudio/nerd-icons-dired +(use-package nerd-icons-dired + :ensure t + :defer t + :diminish nerd-icons-dired-mode + :hook + (dired-mode . nerd-icons-dired-mode)) diff --git a/pkg/nerd-icons.el b/pkg/nerd-icons.el new file mode 100644 index 0000000..fdf4e82 --- /dev/null +++ b/pkg/nerd-icons.el @@ -0,0 +1,6 @@ +;; Nerd Font icons. +;; https://github.com/rainstormstudio/nerd-icons.el +(use-package nerd-icons + :ensure t + :custom + (nerd-icons-font-family "FiraCode Nerd Font")) diff --git a/pkg/savehist.el b/pkg/savehist.el new file mode 100644 index 0000000..308bd85 --- /dev/null +++ b/pkg/savehist.el @@ -0,0 +1,4 @@ +;; Persist history over Emacs restarts. +(use-package savehist + :init + (savehist-mode)) diff --git a/pkg/super-save.el b/pkg/super-save.el index 29508f2..db395c4 100644 --- a/pkg/super-save.el +++ b/pkg/super-save.el @@ -1,8 +1,8 @@ ;; Save buffers when focus is lost. ;; https://github.com/bbatsov/super-save (use-package super-save - :ensure t - :defer t + :ensure t :diminish super-save-mode :config + (setq super-save-auto-save-when-idle t) (super-save-mode +1)) diff --git a/pkg/vertico.el b/pkg/vertico.el new file mode 100644 index 0000000..112520e --- /dev/null +++ b/pkg/vertico.el @@ -0,0 +1,9 @@ +;; Vertical interactive completion. +;; https://github.com/minad/vertico +(use-package vertico + :ensure t + :custom + (vertico-count 3) + (vertico-cycle t) + :init + (vertico-mode))