syscfg/emacs/init.el

70 lines
3.4 KiB
EmacsLisp

;;; init.el --- Emacs configuration entry point
;;; Commentary:
;;; Configure Emacs.
;;;
;;; Code:
;; enable disabled-by-default functions
(put 'erase-buffer 'disabled nil)
(put 'narrow-to-region 'disabled nil)
(put 'narrow-to-defun 'disabled nil)
(put 'narrow-to-page 'disabled nil)
(put 'widen 'disabled nil)
;; setup load paths
(add-to-list 'load-path (expand-file-name "cfg" user-emacs-directory))
(add-to-list 'load-path (expand-file-name "lisp" user-emacs-directory))
(let* ((feature-directory (file-truename (expand-file-name "feature" user-emacs-directory)))
(default-directory feature-directory))
(add-to-list 'load-path feature-directory)
(normal-top-level-add-subdirs-to-load-path))
;; load base configuration and additional features
(require 'feature-base) ; prep the beast
(require 'feature-pkg) ; this comes right after feature-base
(require 'feature-dired) ; dired stuff
(require 'feature-async) ; asynchronous functions in emacs
(require 'feature-alioth) ; when one computer isn't enough
(require 'feature-which-key) ; memorization is for the birds
(require 'feature-multi-cursor) ; do repeat yourself
(require 'feature-org) ; when markdown isn't good enough
(require 'feature-ctags) ; a fork for your spaghetti
(require 'feature-detached) ; attachment causes suffering
(require 'feature-denote) ; a second brain
(require 'feature-denote-multidir) ; a third, fourth, ... brain
(require 'feature-denote-index) ; manage second-brain dementia
(require 'feature-eyecandy) ; eye candy (themes, modeline...)
(require 'feature-magit) ; git stuff
(require 'feature-graphviz) ; diagrams for old people
(require 'feature-plantuml) ; diagrams for less-old people
(require 'feature-golang) ; gophers unite
(require 'feature-golang-playground) ; for playing with go code
(require 'feature-python) ; code that eats itself
(require 'feature-web) ; a veritable fucking mess
(require 'feature-protobuf) ; some google messaging shit
(require 'feature-kotlin) ; java for the only mildly insane
(require 'feature-yaml) ; because we all have to deal with it
(require 'feature-json) ; data for argonauts
(require 'feature-rego) ; some policy language we use at work
(require 'feature-syntax) ; track wip, compile into submission
(require 'feature-eshell) ; elisp shell
(require 'feature-scratch) ; extend scratch buffers
(require 'feature-orderless) ; fuzzy search
(require 'feature-vertico) ; better minibuffer
(require 'feature-embark) ; woof!
(require 'feature-consult) ; consult
(require 'feature-projectile) ; project management for nerds
(require 'feature-consult-projectile) ; consult-projectile
(require 'feature-rss) ; web browsing sucks
(require 'feature-llm) ; generate some bullshit
(require 'feature-snippets) ; lazy code generator
(require 'feature-browser) ; when we really have to browse...
(require 'feature-lmtf) ; lispy mctestface
(require 'feature-apitest) ; api testing capabilities
(require 'feature-avy) ; avy for quick jumping
;; theme
(load-theme 'misterioso)
;;; init.el ends here