src.nth.io/

summaryrefslogtreecommitdiff
path: root/hoersten-c-style.el
blob: 783f45f9e8dd8cbda3ea13fdb9606d720fcefc29 (plain)
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
67
68
69
70
71
72
73
74
75
76
;; ~/.emacs.d/hoersten-c-style.el
;; Luke Hoersten <[email protected]>

;; hoersten c++-style
(c-add-style
 "hoersten"
 '(;; indentation
   (indent-tabs-mode       . t)
   (tab-width              . 3)
   (c-basic-offset         . 3)

   ;; brace cleanups
   (c-cleanup-list
    brace-else-brace
    brace-elseif-brace
    brace-catch-brace
    empty-defun-braces
    defun-close-semi
    list-close-comma
    scope-operator)

   ;; syntactic symbols
   (c-offsets-alist
    (substatement-open     . 0)
    (inline-open           . 0)
    (case-label            . +)
    (innamespace           . 0)
    (arglist-cont-nonempty . +)
    (cpp-macro             . -))))

;; c-like language settings (c, c++, java, etc.)
;;(require 'doxymacs)
(setq-default
 c-hungry-delete-key t       ; enable hungry delete
 c-default-style "hoersten") ; load c-style

(add-hook
 'c-mode-common-hook
 (lambda ()
   ;; indentation
   (setq
    tab-width 3
    c-basic-offset 3
    indent-tabs-mode t
    standard-indent 3
    whitespace-line-column 120)

   (c-toggle-auto-newline t) ; auto newline
   (c-subword-mode t)

   ;; custom keys
   (local-set-key (kbd "C-c f")   'ff-find-other-file) ; toggle header/source file
   (local-set-key (kbd "C-c C-c") 'comment-or-uncomment-region)

   ;; ;; code folding
   ;; (local-set-key (kbd "C-c v") 'hs-toggle-hiding)
   ;; (local-set-key (kbd "<f1>")  'hs-hide-all)
   ;; (local-set-key (kbd "<f2>")  'hs-show-all)
   ;; (hs-minor-mode t) ; enable hide-show mode

   ;; gdb settings
   (setq
    gdb-many-windows t                ; gdb many windows
    gdb-use-separate-io-buffer t      ; gdb stdio output
    gud-tooltip-mode t)               ; mouse hover variables
   (local-set-key (kbd "C-c g") 'gdb) ; gdb

   ;; auto-close bracing
   (setq parens-require-spaces nil)
   (dolist (key '("(" "[")) (define-key (current-local-map) key 'insert-pair))
   ))

(add-to-list 'auto-mode-alist '("\\.ipp$" . c++-mode))
(add-to-list 'auto-mode-alist '("\\.inl$" . c++-mode))

(provide 'hoersten-c-style)