From 64cf8e4ec76de6b9418e59a436349e93242f5849 Mon Sep 17 00:00:00 2001 From: Gabriel Ebner Date: Fri, 24 Jun 2022 22:26:04 +0200 Subject: [PATCH] Improve emacs config. --- emacs.d/init.el | 69 +++++++++++++++++++++++++++++-------------------- 1 file changed, 41 insertions(+), 28 deletions(-) diff --git a/emacs.d/init.el b/emacs.d/init.el index ef5a533..6d3b18d 100644 --- a/emacs.d/init.el +++ b/emacs.d/init.el @@ -6,8 +6,19 @@ ;; need to know about Emacs (what commands exist, what functions do, ;; what variables specify), the help system can provide. +;; Add the NonGNU ELPA package archive +(require 'package) +(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) +(add-to-list 'package-archives '("nongnu" . "https://elpa.nongnu.org/nongnu/")) + +;; Disable splash screen +(setq inhibit-startup-screen t) + +;; Disable satanic torture +(blink-cursor-mode 0) + ;; Set default font face -(set-face-attribute 'default nil :font "Fira Mono") +(set-face-attribute 'default nil :font "Fira Mono" :height 125) ;; Disable the menu bar (menu-bar-mode -1) @@ -18,9 +29,12 @@ ;; Disable the scroll bars (scroll-bar-mode -1) +(defun install-package-if-missing (pkg) + (unless (package-installed-p pkg) + (package-install pkg))) + ;;; Completion framework -(unless (package-installed-p 'vertico) - (package-install 'vertico)) +(install-package-if-missing 'vertico) ;; Enable completion by narrowing (vertico-mode t) @@ -32,59 +46,58 @@ (define-key vertico-map (kbd "M-d") #'vertico-directory-delete-char)) ;;; Extended completion utilities -(unless (package-installed-p 'consult) - (package-install 'consult)) +(install-package-if-missing 'consult) (global-set-key [rebind switch-to-buffer] #'consult-buffer) ;;; LSP Support -(unless (package-installed-p 'eglot) - (package-install 'eglot)) - -;; Enable LSP support by default in programming buffers -(add-hook 'prog-mode-hook #'eglot-ensure) +(install-package-if-missing 'lsp-mode) ;;; Pop-up auto-completion -(unless (package-installed-p 'company) - (package-install 'company)) +(install-package-if-missing 'company) ;; Enable Company by default in programming buffers (add-hook 'prog-mode-hook #'company-mode) ;;; Indication of local VCS changes -(unless (package-installed-p 'diff-hl) - (package-install 'diff-hl)) +(install-package-if-missing 'diff-hl) ;; Enable `diff-hl' support by default in programming buffers (add-hook 'prog-mode-hook #'diff-hl-mode) +;;; Lean Support +(let ((path "~/lean4-mode")) + (when (file-exists-p path) + (setq load-path (cons path load-path)) + (dolist (p '(dash f flycheck lsp-mode magit-section s)) + (install-package-if-missing p)) + (require 'lean4-mode))) +(setq lean4-highlight-inaccessible-names nil) + ;;; Rust Support -(unless (package-installed-p 'rust-mode) - (package-install 'rust-mode)) +(install-package-if-missing 'rust-mode) ;;; LaTeX support -(unless (package-installed-p 'auctex) - (package-install 'auctex)) +(install-package-if-missing 'auctex) (setq TeX-auto-save t) (setq TeX-parse-self t) (setq-default TeX-master nil) ;;; Markdown support -(unless (package-installed-p 'markdown-mode) - (package-install 'markdown-mode)) +(install-package-if-missing 'markdown-mode) ;;; EditorConfig support -(unless (package-installed-p 'editorconfig) - (package-install 'editorconfig)) - -;; Enable EditorConfig +(install-package-if-missing 'editorconfig) (editorconfig-mode t) ;;; Vim Emulation -(unless (package-installed-p 'evil) - (package-install 'evil)) - -;; Enable Vim emulation +(install-package-if-missing 'evil) (evil-mode t) +(install-package-if-missing 'evil-commentary) +(evil-commentary-mode) + +;;; Color Themes +(install-package-if-missing 'color-theme-sanityinc-tomorrow) +(load-theme 'sanityinc-tomorrow-bright t) ;; Miscellaneous options (setq-default major-mode