Files
dotfiles/thoom-emacs/init.el
2024-04-05 12:14:14 -07:00

111 lines
2.7 KiB
EmacsLisp

(defvar thoom/dir (file-name-directory load-file-name)
"The root dir of the Thoom Emacs distribution.")
(defvar thoom/modules-dir (expand-file-name "modules" thoom/dir)
"This directory houses all of the built-in Prelude modules.")
(add-to-list 'load-path thoom/modules-dir)
;; Set a location for the custom file so it doesn't pollute this file.
(setq custom-file (locate-user-emacs-file "custom-vars.el"))
;; Elpaca package manager
(require 'thoom-elpaca)
(require 'thoom-os)
(require 'thoom-completion)
(require 'thoom-theme)
;; When scrolling by page and hitting top/bottom, move cursor to top/bottom of buffer
(setq-default scroll-error-top-bottom t)
;; Revert buffers when the underlying file has changed
(global-auto-revert-mode 1)
;; Remember recent files
(recentf-mode 1)
;; Save what you enter into minibuffer prompts
(setq history-length 25)
(savehist-mode 1)
;; Visually mark the line the cursor is on
(global-hl-line-mode 1)
;; Enable repeat mode. Keymaps are defined through use-package's :repeat-map directive.
(repeat-mode 1)
(tab-bar-mode)
;; TODO - keybindings
;; TODO - Decide whether to enable this
;; (defalias 'yes-or-no-p 'y-or-n-p)
;; tabs are for monsters
(setq-default indent-tabs-mode nil)
(setq-default tab-width 4)
(setq-default sentence-end-double-space nil)
(use-package hl-todo
:ensure t
:init
(global-hl-todo-mode))
;; TODO https://github.com/jdtsmith/outli
(use-package which-key
:ensure t
:init
(which-key-mode)
(which-key-setup-side-window-bottom))
;; Dired
;; (use-package dired
;; :bind (:map dired-mode-map
;; ("h" . dired-up-directory)
;; ("l" . dired-find-file)))
;; Treesitter
;; TODO https://github.com/renzmann/treesit-auto
;; LSP
;; TODO https://github.com/blahgeek/emacs-lsp-booster
;; TODO Use right-option as regular option on Mac
;; (setq ns-alternate-modifier 'meta)
;; (setq ns-right-alternate-modifier 'none)
;; TODO https://github.com/stsquad/emacs_chrome
;; TODO https://github.com/astoff/devdocs.el
;; TODO https://github.com/casouri/vundo
;
;; TODO https://karthinks.com/software/avy-can-do-anything/
(defun thoom/org-clear-all ()
(interactive)
(goto-char 0)
(org-map-entries
(lambda ()
(org-todo "")))
(flush-lines "CLOSED")
(message "Entries cleared."))
(use-package dumb-jump
:ensure t
:config
(add-hook 'xref-backend-functions #'dumb-jump-xref-activate)
(setq xref-show-definitions-function #'xref-show-definitions-completing-read))
(use-package magit
:ensure t
:custom (magit-save-repository-buffers 'dontask)
:bind (("C-x g" . magit-status)
:map magit-mode-map
(":" . execute-extended-command)
("x" . magit-discard)))
(use-package direnv
:ensure t
:config
(direnv-mode))