;;; -*- lexical-binding: t; -*- ;;; Commentary: ;;; Code: ;;;; line numbers (setopt display-line-numbers-type 'relative) (defvar bd/enable-line-numbers-in-hooks '(prog-mode-hook) "List of hook symbols to add `display-line-numbers-mode' to.") (mapc (lambda (hook) (add-hook hook #'display-line-numbers-mode)) bd/enable-line-numbers-in-hooks) ;;;; outline mode (setq-default outline-minor-mode-cycle t outline-minor-mode-highlight t) ;;;; general (defun request-sudo () "Uses TRAMP to edit current opened file as root." (interactive) (when buffer-file-name (find-alternate-file (concat "/sudo:root@localhost:" buffer-file-name)))) (defun bd/compile-dwim (f) (let ((default-directory (or (locate-dominating-file "." "Makefile") ;; make (locate-dominating-file "." "build.xml") ;; ant (locate-dominating-file "." "manifest.scm") ;; guix default-directory))) (call-interactively f))) (setq compilation-always-kill t compilation-scroll-output 'first-error) (keymap-set prog-mode-map "C-," #'(lambda () (interactive) (bd/compile-dwim #'recompile))) (keymap-set prog-mode-map "C-<" #'(lambda () (interactive) (bd/compile-dwim #'compile))) (add-hook 'prog-mode-hook (lambda () (font-lock-add-keywords nil '(("\\<\\(FIX\\(ME\\)?\\|TODO\\)" 1 font-lock-warning-face t))))) ;; my custom cleanup mode (require 'autoformat) (autoformat-mode 1) ;; questionable default (indent-tabs-mode 0) ;; skr is a scheme extension (add-to-list 'auto-mode-alist '("\\.skr\\'" . scheme-mode)) (use-package rainbow-mode :hook css-mode) (use-package lua-mode) (use-package magit :commands magit-status :custom (magit-define-global-key-bindings 'recommended)) (use-package tex :ensure auctex :hook ((latex-mode) (text-mode . (lambda() (setq ispell-parser 'tex)))) ; improves ispell in LaTeX :config (push '(output-pdf "Zathura") TeX-view-program-selection) :custom (TeX-auto-save t) ;; better support for latex packages (TeX-parse-self t)) (use-package rainbow-delimiters :hook prog-mode) (use-package paredit :hook (emacs-lisp-mode lisp-mode scheme-mode lisp-interaction-mode)) (provide 'bd--devel) ;;; bd--devel ends here