blob: c20293efded01dfc32ef8eb01294d6cde6a4ec47 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
;;; my-prog.el --- Configures emacs for various programming languages -*- lexical-binding: t -*-
;;; Commentary:
;;; Code:
(customize-set-variable 'Man-notify-method 'aggressive)
(customize-set-variable 'Man-fontify-manpage-flag t)
;; turn on `electric-pair-mode' on `prog-mode' and `conf-mode-hook'
(dolist (hook '(prog-mode-hook conf-mode-hook))
(add-hook hook 'electric-pair-mode))
;; Skip over warnings and info messages in compilation
(customize-set-variable 'compilation-skip-threshold 2)
;; Don't freeze when process reads from stdin
(customize-set-variable 'compilation-disable-input t)
;; Show three lines of context around the current message
(customize-set-variable 'compilation-context-lines 3)
;; Jump to first error
(customize-set-variable 'compilation-scroll-output 'first-error)
;; yasnippet is required to support place holders with eglot
(dolist (hook '(prog-mode-hook conf-mode-hook org-mode-hook))
(add-hook hook 'yas-minor-mode))
;; I want comments to be wrapped at column 80
(require 'newcomment)
(setq comment-fill-column 80)
(setq comment-auto-fill-only-comments t)
(dolist (hook '(prog-mode-hook conf-mode-hook))
(add-hook hook 'auto-fill-mode))
(defun my/sh-mode-hook ()
"Hooks for `sh-mode'."
;; shell scripts are made executable
(add-hook 'after-save-hook 'executable-make-buffer-file-executable-if-script-p)
(customize-set-variable 'sh-indentation 2)
(customize-set-variable 'sh-basic-offset 2))
(add-hook 'sh-mode-hook 'my/sh-mode-hook)
;; set the indent level for python
(customize-set-variable 'python-indent-offset 4)
(defun my/makefile-mode-hook ()
"Hooks for `makefile-mode'."
;; I want small tabs when working in a Makefile
(setq tab-width 2))
(add-hook 'makefile-mode-hook 'my/makefile-mode-hook)
(defun my/elisp-mode-hook ()
"Hooks for `elisp-mode'."
(define-key emacs-lisp-mode-map (kbd "C-c C-e") 'eval-buffer)
(define-key emacs-lisp-mode-map (kbd "C-c C-r") 'eval-region))
(add-hook 'emacs-lisp-mode-hook 'my/elisp-mode-hook)
(define-key prog-mode-map (kbd "C-c C-h") 'eldoc)
(dolist (hook '(prog-mode-hook conf-mode-hook))
(add-hook hook 'turn-on-eldoc-mode))
(provide 'my-prog)
;;; my-prog.el ends here
|