From b31f90af5ac142fe35cf40d1c1458b20170a7286 Mon Sep 17 00:00:00 2001 From: Jacob McDonnell Date: Sat, 28 Mar 2026 14:52:43 -0400 Subject: refactor: Split Emacs config into multiple files Split Emacs config into multiple files for a more readable setup. --- .emacs.d/init.el | 122 ++++--------------------------------- .emacs.d/lisp/evil-setup.el | 41 +++++++++++++ .emacs.d/lisp/lsp-setup.el | 21 +++++++ .emacs.d/lisp/magit-setup.el | 5 ++ .emacs.d/lisp/melpa-setup.el | 9 +++ .emacs.d/lisp/theme-setup.el | 11 ++++ .emacs.d/lisp/tree-sitter-setup.el | 15 +++++ .emacs.d/lisp/vterm-setup.el | 22 +++++++ 8 files changed, 135 insertions(+), 111 deletions(-) create mode 100644 .emacs.d/lisp/evil-setup.el create mode 100644 .emacs.d/lisp/lsp-setup.el create mode 100644 .emacs.d/lisp/magit-setup.el create mode 100644 .emacs.d/lisp/melpa-setup.el create mode 100644 .emacs.d/lisp/theme-setup.el create mode 100644 .emacs.d/lisp/tree-sitter-setup.el create mode 100644 .emacs.d/lisp/vterm-setup.el (limited to '.emacs.d') diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 22b1b34..3802e44 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -1,6 +1,3 @@ -(add-to-list 'custom-theme-load-path "~/.emacs.d/themes") -(load-theme 'naysayer t) - (setq backup-directory-alist '(("." . "~/.cache/emacs-backup")) backup-by-copying t version-control t @@ -30,6 +27,7 @@ (display-line-numbers-mode) (setq-default display-line-numbers 'relative) +;; Remove whitespace at the end of lines and change tabs to 4 spaces (defun remove-trailing-whitespace-before-save-hook () (progn (if (not (string-match ".*makefile.*" (message "%s" major-mode))) @@ -37,120 +35,22 @@ (delete-trailing-whitespace))) (add-hook 'before-save-hook 'remove-trailing-whitespace-before-save-hook) -;; Set up package.el to work with MELPA -(require 'package) -(add-to-list 'package-archives - '("melpa" . "https://melpa.org/packages/")) -(package-initialize) -(unless package-archive-contents - (package-refresh-contents)) - -(unless (package-installed-p 'acme-theme) - (package-install 'acme-theme)) - -(use-package acme-theme - :config - (load-theme 'acme t)) - -(use-package vterm - :ensure t) - -(set-face-attribute 'vterm-color-black nil :foreground "#171421" :background "#171421") -(set-face-attribute 'vterm-color-red nil :foreground "#C01C28" :background "#C01C28") -(set-face-attribute 'vterm-color-green nil :foreground "#26A269" :background "#26A269") -(set-face-attribute 'vterm-color-yellow nil :foreground "#A2734C" :background "#A2734C") -(set-face-attribute 'vterm-color-blue nil :foreground "#12488B" :background "#12488B") -(set-face-attribute 'vterm-color-magenta nil :foreground "#A347BA" :background "#A347BA") -(set-face-attribute 'vterm-color-cyan nil :foreground "#2AA1B3" :background "#2AA1B3") -(set-face-attribute 'vterm-color-white nil :foreground "#D0CFCC" :background "#D0CFCC") -(set-face-attribute 'vterm-color-bright-black nil :foreground "#5E5C64" :background "#5E5C64") -(set-face-attribute 'vterm-color-bright-red nil :foreground "#F66151" :background "#F66151") -(set-face-attribute 'vterm-color-bright-green nil :foreground "#33DA7A" :background "#33DA7A") -(set-face-attribute 'vterm-color-bright-yellow nil :foreground "#E9AD0C" :background "#E9AD0C") -(set-face-attribute 'vterm-color-bright-blue nil :foreground "#2A7BDE" :background "#2A7BDE") -(set-face-attribute 'vterm-color-bright-magenta nil :foreground "#C061CB" :background "#C061CB") -(set-face-attribute 'vterm-color-bright-cyan nil :foreground "#33C7DE" :background "#33C7DE") -(set-face-attribute 'vterm-color-bright-white nil :foreground "#FFFFFF" :background "#FFFFFF") - -(unless (package-installed-p 'magit) - (package-install 'magit)) - -;; Download Evil -(unless (package-installed-p 'evil) - (package-install 'evil)) - -(unless (package-installed-p 'evil-collection) - (package-install 'evil-collection)) - -(setq evil-want-keybinding nil) - -;; Enable Evil -(use-package evil - :init ;; tweak evil's configuration before loading it - (setq evil-want-C-u-scroll t - evil-want-keybinding nil - evil-vsplit-window-right t - evil-split-window-below t) - (evil-mode)) - -(use-package evil-collection - :after evil - :ensure t - :config - (evil-collection-init)) - -(evil-set-leader 'normal (kbd "SPC")) -(define-key evil-normal-state-map (kbd "w") 'save-buffer) -(define-key evil-normal-state-map (kbd "%") 'split-window-right) -(define-key evil-normal-state-map (kbd "\"") 'split-window-below) -(define-key evil-normal-state-map (kbd "t") 'vterm) -(define-key evil-normal-state-map (kbd "ff") 'find-file) -(define-key evil-normal-state-map (kbd "pv") 'dired) -(define-key evil-normal-state-map (kbd "C-l") 'windmove-right) -(define-key evil-normal-state-map (kbd "C-h") 'windmove-left) -(define-key evil-normal-state-map (kbd "C-j") 'windmove-down) -(define-key evil-normal-state-map (kbd "C-k") 'windmove-up) - -;; Download Treesitter -(unless (package-installed-p 'tree-sitter) - (package-install 'tree-sitter)) - -(unless (package-installed-p 'tree-sitter-langs) - (package-install 'tree-sitter-langs)) - -;; Treesitter -(require 'tree-sitter) -(require 'tree-sitter-langs) - -(global-tree-sitter-mode) -;;(add-hook 'tree-sitter-after-on-hook #'tree-sitter-hl-mode) - -;; Download LSP-Mode -(unless (package-installed-p 'lsp-mode) - (package-install 'lsp-mode)) - -;; Setup LSP-Mode -(require 'lsp-mode) -(add-hook 'c-mode-hook #'lsp) -(add-hook 'c++-mode-hook #'lsp) -(add-hook 'elisp-mode-hook #'lsp) - -;; Company-Mode for LSP-Mode -(unless (package-installed-p 'company) - (package-install 'company)) +(add-to-list 'load-path "~/.emacs.d/lisp") +(require 'melpa-setup) +(require 'theme-setup) +(when (not (eq system-type 'windows-nt)) + (require 'vterm-setup)) +(require 'evil-setup) +(require 'tree-sitter-setup) +(require 'magit-setup) +(require 'lsp-setup) -;; Setup LSP-Mode -;;(require 'company) -;;(setq company-minimum-prefix-length 1 -;; company-idle-delay 0.0) ;; default is 0.2 (custom-set-variables ;; custom-set-variables was added by Custom. ;; 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. - '(package-selected-packages - '(acme-theme company evil-collection lsp-mode magit tree-sitter-langs - vterm))) + '(package-selected-packages nil)) (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/.emacs.d/lisp/evil-setup.el b/.emacs.d/lisp/evil-setup.el new file mode 100644 index 0000000..cad03c9 --- /dev/null +++ b/.emacs.d/lisp/evil-setup.el @@ -0,0 +1,41 @@ +;; Download Evil +(unless (package-installed-p 'evil) + (package-install 'evil)) + +(unless (package-installed-p 'evil-collection) + (package-install 'evil-collection)) + +(setq evil-want-keybinding nil) + +;; Enable Evil +(use-package evil + :init ;; tweak evil's configuration before loading it + (setq evil-want-C-u-scroll t + evil-want-keybinding nil + evil-vsplit-window-right t + evil-split-window-below t) + (evil-mode)) + +(use-package evil-collection + :after evil + :ensure t + :config + (evil-collection-init)) + +(evil-set-leader 'normal (kbd "SPC")) +(define-key evil-normal-state-map (kbd "w") 'save-buffer) +(define-key evil-normal-state-map (kbd "%") 'split-window-right) +(define-key evil-normal-state-map (kbd "\"") 'split-window-below) +(cond ((not (eq system-type 'windows-nt)) + (define-key evil-normal-state-map (kbd "t") 'vterm)) + (t (define-key evil-normal-state-map (kbd "t") 'ansi-term))) +(define-key evil-normal-state-map (kbd "ff") 'find-file) +(define-key evil-normal-state-map (kbd "pv") 'dired) +(define-key evil-normal-state-map (kbd "c") 'shell-command) +(define-key evil-normal-state-map (kbd "C-l") 'windmove-right) +(define-key evil-normal-state-map (kbd "C-h") 'windmove-left) +(define-key evil-normal-state-map (kbd "C-j") 'windmove-down) +(define-key evil-normal-state-map (kbd "C-k") 'windmove-up) + +(provide 'evil-setup) + diff --git a/.emacs.d/lisp/lsp-setup.el b/.emacs.d/lisp/lsp-setup.el new file mode 100644 index 0000000..9fbf669 --- /dev/null +++ b/.emacs.d/lisp/lsp-setup.el @@ -0,0 +1,21 @@ +;; Download LSP-Mode +(unless (package-installed-p 'lsp-mode) + (package-install 'lsp-mode)) + +;; Setup LSP-Mode +(require 'lsp-mode) +(add-hook 'c-mode-hook #'lsp) +(add-hook 'c++-mode-hook #'lsp) +(add-hook 'elisp-mode-hook #'lsp) + +;; Company-Mode for LSP-Mode +(unless (package-installed-p 'company) + (package-install 'company)) + +;; Setup LSP-Mode +;;(require 'company) +;;(setq company-minimum-prefix-length 1 +;; company-idle-delay 0.0) ;; default is 0.2 + +(provide 'lsp-setup) + diff --git a/.emacs.d/lisp/magit-setup.el b/.emacs.d/lisp/magit-setup.el new file mode 100644 index 0000000..1018218 --- /dev/null +++ b/.emacs.d/lisp/magit-setup.el @@ -0,0 +1,5 @@ +(unless (package-installed-p 'magit) + (package-install 'magit)) + +(provide 'magit-setup) + diff --git a/.emacs.d/lisp/melpa-setup.el b/.emacs.d/lisp/melpa-setup.el new file mode 100644 index 0000000..b95fcea --- /dev/null +++ b/.emacs.d/lisp/melpa-setup.el @@ -0,0 +1,9 @@ +;; Set up package.el to work with MELPA +(require 'package) +(add-to-list 'package-archives + '("melpa" . "https://melpa.org/packages/")) +(package-initialize) +(unless package-archive-contents + (package-refresh-contents)) + +(provide 'melpa-setup) diff --git a/.emacs.d/lisp/theme-setup.el b/.emacs.d/lisp/theme-setup.el new file mode 100644 index 0000000..98152c4 --- /dev/null +++ b/.emacs.d/lisp/theme-setup.el @@ -0,0 +1,11 @@ +(add-to-list 'custom-theme-load-path "~/.emacs.d/themes") +(load-theme 'naysayer t) + +(unless (package-installed-p 'acme-theme) + (package-install 'acme-theme)) + +(use-package acme-theme + :config + (load-theme 'acme t)) + +(provide 'theme-setup) diff --git a/.emacs.d/lisp/tree-sitter-setup.el b/.emacs.d/lisp/tree-sitter-setup.el new file mode 100644 index 0000000..d57027d --- /dev/null +++ b/.emacs.d/lisp/tree-sitter-setup.el @@ -0,0 +1,15 @@ +;; Download Treesitter +(unless (package-installed-p 'tree-sitter) + (package-install 'tree-sitter)) + +(unless (package-installed-p 'tree-sitter-langs) + (package-install 'tree-sitter-langs)) + +;; Treesitter +(require 'tree-sitter) +(require 'tree-sitter-langs) + +(global-tree-sitter-mode) +;;(add-hook 'tree-sitter-after-on-hook #'tree-sitter-hl-mode) + +(provide 'tree-sitter-setup) diff --git a/.emacs.d/lisp/vterm-setup.el b/.emacs.d/lisp/vterm-setup.el new file mode 100644 index 0000000..dbdea29 --- /dev/null +++ b/.emacs.d/lisp/vterm-setup.el @@ -0,0 +1,22 @@ +(use-package vterm + :ensure t) + +(set-face-attribute 'vterm-color-black nil :foreground "#171421" :background "#171421") +(set-face-attribute 'vterm-color-red nil :foreground "#C01C28" :background "#C01C28") +(set-face-attribute 'vterm-color-green nil :foreground "#26A269" :background "#26A269") +(set-face-attribute 'vterm-color-yellow nil :foreground "#A2734C" :background "#A2734C") +(set-face-attribute 'vterm-color-blue nil :foreground "#12488B" :background "#12488B") +(set-face-attribute 'vterm-color-magenta nil :foreground "#A347BA" :background "#A347BA") +(set-face-attribute 'vterm-color-cyan nil :foreground "#2AA1B3" :background "#2AA1B3") +(set-face-attribute 'vterm-color-white nil :foreground "#D0CFCC" :background "#D0CFCC") +(set-face-attribute 'vterm-color-bright-black nil :foreground "#5E5C64" :background "#5E5C64") +(set-face-attribute 'vterm-color-bright-red nil :foreground "#F66151" :background "#F66151") +(set-face-attribute 'vterm-color-bright-green nil :foreground "#33DA7A" :background "#33DA7A") +(set-face-attribute 'vterm-color-bright-yellow nil :foreground "#E9AD0C" :background "#E9AD0C") +(set-face-attribute 'vterm-color-bright-blue nil :foreground "#2A7BDE" :background "#2A7BDE") +(set-face-attribute 'vterm-color-bright-magenta nil :foreground "#C061CB" :background "#C061CB") +(set-face-attribute 'vterm-color-bright-cyan nil :foreground "#33C7DE" :background "#33C7DE") +(set-face-attribute 'vterm-color-bright-white nil :foreground "#FFFFFF" :background "#FFFFFF") + +(provide 'vterm-setup) + -- cgit v1.2.3