]> code.delx.au - dotemacs/blob - file-modes/init.el
Massive update!
[dotemacs] / file-modes / init.el
1 ;;; -*- lexical-binding: t -*-
2
3 (dolist (pkg '("~/.emacs.d/file-modes/dockerfile-mode"
4 "~/.emacs.d/file-modes/editorconfig"
5 "~/.emacs.d/file-modes/git-modes"
6 "~/.emacs.d/file-modes/ledger-mode"
7 "~/.emacs.d/file-modes/markdown-mode"
8 "~/.emacs.d/file-modes/pkgbuild-mode"
9 "~/.emacs.d/file-modes/ssh-file-modes"
10 "~/.emacs.d/file-modes/yaml-mode"))
11 (add-to-list 'load-path pkg))
12
13 ;;;;;;;;;;;;;;;;;;;;
14 ;; Built-in modes ;;
15 ;;;;;;;;;;;;;;;;;;;;
16
17 ;; language servers
18 (require 'eglot)
19 (add-hook 'js-mode-hook #'eglot-ensure)
20 (add-hook 'python-mode-hook #'eglot-ensure)
21
22 ;; documentation
23 (require 'eldoc)
24 (setq eldoc-echo-area-use-multiline-p nil)
25 (setq eldoc-echo-area-prefer-doc-buffer t)
26 (global-set-key (kbd "C-h .") 'eldoc-print-current-symbol-info)
27
28 ;; syntax checking
29 (require 'flymake)
30 (global-set-key (kbd "M-g n") #'flymake-goto-next-error)
31 (global-set-key (kbd "M-g M-n") #'flymake-goto-next-error)
32 (global-set-key (kbd "M-g p") #'flymake-goto-prev-error)
33 (global-set-key (kbd "M-g M-p") #'flymake-goto-prev-error)
34 (global-set-key (kbd "M-g l") #'flymake-show-buffer-diagnostics)
35 (global-set-key (kbd "M-g M-l") #'flymake-show-buffer-diagnostics)
36
37 (require 'cc-mode)
38 (setq c-auto-align-backslashes nil)
39 (setq c-default-style '((java-mode . "java")
40 (awk-mode . "awk")
41 (other . "stroustrup")))
42
43 (require 'perl-mode)
44 (setq perl-indent-level 4)
45 (setq perl-continued-statement-offset 0)
46 (setq perl-continued-brace-offset 0)
47 (setq perl-brace-offset 0)
48 (setq perl-brace-imaginary-offset 0)
49 (setq perl-label-offset 0)
50 (setq perl-indent-continued-arguments 4)
51
52 (require 'python)
53 (add-hook 'python-mode-hook
54 (lambda ()
55 (setq forward-sexp-function nil)
56 (set (make-local-variable 'python-indent-offset) 4)))
57
58 (require 'sh-script)
59 (setq sh-use-smie nil)
60
61 ;;;;;;;;;;;;;;;;;;;;;;;;;;
62 ;; Third-party packages ;;
63 ;;;;;;;;;;;;;;;;;;;;;;;;;;
64
65 (require 'dockerfile-mode)
66
67 (require 'editorconfig)
68 (setq editorconfig-mode-lighter "")
69 (editorconfig-mode 1)
70
71 (require 'git-modes)
72
73 (require 'ledger-mode nil 'noerror)
74 (add-to-list 'auto-mode-alist '("\\.ledger\\'" . ledger-mode))
75 (setq ledger-post-amount-alignment-column 72)
76 (setq ledger-reconcile-default-commodity "AUD")
77 (setq ledger-clear-whole-transactions t)
78 (setq org-read-date-prefer-future nil)
79 (custom-set-faces
80 '(ledger-font-posting-account-face ((t (:inherit default)))))
81
82 (require 'markdown-mode)
83 (setq markdown-command "markdown_py -x markdown.extensions.smart_strong -x markdown.extensions.fenced_code -x markdown.extensions.nl2br")
84 (add-to-list 'auto-mode-alist '("\\.mdown\\'" . markdown-mode) t)
85
86 (require 'pkgbuild-mode)
87
88 (require 'ssh-file-modes)
89
90 (require 'yaml-mode)