161 lines
4 KiB
EmacsLisp
161 lines
4 KiB
EmacsLisp
;; .emacs
|
|
|
|
;; Initialize straight.el
|
|
(defvar bootstrap-version)
|
|
(let ((bootstrap-file
|
|
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
|
|
(bootstrap-version 6))
|
|
(unless (file-exists-p bootstrap-file)
|
|
(with-current-buffer
|
|
(url-retrieve-synchronously
|
|
"https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el"
|
|
'silent 'inhibit-cookies)
|
|
(goto-char (point-max))
|
|
(eval-print-last-sexp)))
|
|
(load bootstrap-file nil 'nomessage))
|
|
|
|
;; GCMH - Do this at the beginning so we can maybe start up a bit
|
|
;; faster
|
|
(straight-use-package 'gcmh)
|
|
(gcmh-mode 1)
|
|
|
|
;; use-package
|
|
(straight-use-package 'use-package)
|
|
|
|
;; Packages
|
|
;; Major modes
|
|
(straight-use-package 'markdown-mode)
|
|
(straight-use-package 'rust-mode)
|
|
(straight-use-package 'haskell-mode)
|
|
(straight-use-package 'fish-mode)
|
|
(straight-use-package 'yaml-mode)
|
|
(straight-use-package 'cmake-mode)
|
|
|
|
(define-minor-mode remove-trailing-whitespace-mode
|
|
"Minor mode to remove trailing whitespace on every save"
|
|
(add-hook 'before-save-hook 'delete-trailing-whitespace))
|
|
|
|
(add-hook 'prog-mode-hook 'remove-trailing-whitespace-mode)
|
|
|
|
;; Other stuff
|
|
(straight-use-package 'better-defaults)
|
|
(straight-use-package 'delight)
|
|
(straight-use-package 'doom-themes)
|
|
(straight-use-package 'undo-tree)
|
|
(straight-use-package 'multiple-cursors)
|
|
(straight-use-package 'which-key)
|
|
(straight-use-package 'rainbow-delimiters)
|
|
(straight-use-package 'hl-todo)
|
|
(straight-use-package 'orderless)
|
|
(straight-use-package 'vertico)
|
|
(straight-use-package 'consult)
|
|
(straight-use-package 'marginalia)
|
|
(straight-use-package 'embark)
|
|
(straight-use-package 'embark-consult)
|
|
(straight-use-package 'company)
|
|
(straight-use-package 'lsp-mode)
|
|
(straight-use-package 'speed-type)
|
|
(straight-use-package 'magit)
|
|
(straight-use-package 'restart-emacs)
|
|
;; (straight-use-package 'mingus)
|
|
(straight-use-package 'ace-window)
|
|
;; (straight-use-package 'projectile)
|
|
;; (straight-use-package 'osm)
|
|
(straight-use-package 'editorconfig)
|
|
(straight-use-package 'exec-path-from-shell)
|
|
(straight-use-package 'pyvenv)
|
|
(straight-use-package 'ellama)
|
|
(straight-use-package 'proof-general)
|
|
|
|
;; Emacs Configuration
|
|
(setq inhibit-splash-screen t)
|
|
(setq scroll-step 1)
|
|
(recentf-mode 1)
|
|
(global-auto-revert-mode 1)
|
|
(put 'narrow-to-region 'disabled nil)
|
|
(global-unset-key (kbd "C-z"))
|
|
(setq mac-command-modifier 'meta
|
|
mac-option-modifier nil)
|
|
;; (set-face-attribute 'default nil :height 140)
|
|
|
|
(setq use-package-compute-statistics t)
|
|
|
|
(use-package display-line-numbers-mode
|
|
:hook (prog-mode text-mode conf-mode))
|
|
|
|
(use-package hl-line-mode
|
|
:hook (prog-mode text-mode conf-mode))
|
|
|
|
(use-package gcmh
|
|
:delight)
|
|
|
|
(use-package exec-path-from-shell
|
|
:config
|
|
(when (memq window-system '(mac ns))
|
|
(exec-path-from-shell-initialize)))
|
|
|
|
(use-package undo-tree
|
|
:config
|
|
(global-undo-tree-mode)
|
|
:custom
|
|
(undo-tree-auto-save-history nil)
|
|
:delight)
|
|
|
|
(use-package which-key
|
|
:config
|
|
(which-key-mode)
|
|
:delight)
|
|
|
|
(use-package doom-themes
|
|
:config
|
|
(load-theme 'doom-one t))
|
|
|
|
(use-package better-defaults)
|
|
|
|
(use-package multiple-cursors
|
|
:bind (("C-x C-l" . mc/edit-lines)
|
|
("C-x C-n" . mc/mark-next-like-this)
|
|
("C-x C-p" . mc/mark-previous-like-this)))
|
|
|
|
(use-package rainbow-delimiters-mode
|
|
:hook prog-mode)
|
|
|
|
(use-package hl-todo-mode
|
|
:hook prog-mode)
|
|
|
|
(use-package orderless
|
|
:custom (completion-styles '(orderless)))
|
|
|
|
(use-package vertico
|
|
:init
|
|
(ido-mode 0)
|
|
(vertico-mode))
|
|
|
|
(use-package consult
|
|
:bind (("C-c i" . consult-imenu)
|
|
("C-x b" . consult-buffer)))
|
|
|
|
(use-package marginalia
|
|
:init
|
|
(marginalia-mode 1))
|
|
|
|
(use-package company
|
|
:config
|
|
(global-company-mode)
|
|
:bind (("C-." . company-complete)))
|
|
|
|
(use-package ace-window
|
|
:custom
|
|
(aw-keys '(?h ?i ?e ?a ?t ?r ?n ?s))
|
|
:bind (("C-x o" . ace-window)))
|
|
|
|
(use-package editorconfig
|
|
:config
|
|
(editorconfig-mode 1)
|
|
:delight)
|
|
|
|
(use-package embark
|
|
:bind (("C-M-x" . embark-act)))
|
|
|
|
(electric-indent-mode -1)
|
|
(remove-hook 'before-save-hook 'delete-trailing-whitespace)
|