hoersten-c-style.el
changeset 1 ede059431d20
parent 0 c25fee3c92e9
child 4 0fda818a8b6a
equal deleted inserted replaced
0:c25fee3c92e9 1:ede059431d20
     1 ;; ~/.emacs.d/hoersten-c-style.el - Luke Hoersten - v1.0
     1 ;; ~/.emacs.d/hoersten-c-style.el - Luke Hoersten - v1.0
     2 
     2 
     3 ;; hoersten c++-style
     3 ;; hoersten c++-style
     4 (c-add-style "hoersten"
     4 (c-add-style "hoersten"
     5 				 '(;; indentation
     5              '(;; indentation
     6 					(indent-tabs-mode . t)
     6                (indent-tabs-mode . t)
     7 					(tab-width        . 3)
     7                (tab-width        . 3)
     8 					(c-basic-offset   . 3)
     8                (c-basic-offset   . 3)
     9 
     9 
    10 					;; brace cleanups
    10                ;; brace cleanups
    11 					(c-cleanup-list
    11                (c-cleanup-list
    12 					 brace-else-brace
    12                 brace-else-brace
    13 					 brace-elseif-brace
    13                 brace-elseif-brace
    14 					 brace-catch-brace
    14                 brace-catch-brace
    15 					 empty-defun-braces
    15                 empty-defun-braces
    16 					 defun-close-semi
    16                 defun-close-semi
    17 					 list-close-comma
    17                 list-close-comma
    18 					 scope-operator)
    18                 scope-operator)
    19 
    19 
    20 					;; syntactic symbols
    20                ;; syntactic symbols
    21 					(c-offsets-alist
    21                (c-offsets-alist
    22 					 (substatement-open . 0)
    22                 (substatement-open . 0)
    23 					 (inline-open       . 0)
    23                 (inline-open       . 0)
    24 					 (case-label        . +)
    24                 (case-label        . +)
    25 					 (innamespace       . 0)
    25                 (innamespace       . 0)
    26 					 (cpp-macro         . -))))
    26                 (cpp-macro         . -))))
    27 
    27 
    28 ;; c-like language settings (c, c++, java, etc.)
    28 ;; c-like language settings (c, c++, java, etc.)
    29 (setq-default c-hungry-delete-key t)                             ; enable hungry delete
    29 (setq-default c-hungry-delete-key t)                             ; enable hungry delete
    30 (setq-default c-default-style "hoersten")                        ; load c-style
    30 (setq-default c-default-style "hoersten")                        ; load c-style
    31 (add-hook 'c-mode-common-hook
    31 (add-hook 'c-mode-common-hook
    32 			 (lambda()
    32           (lambda()
    33 				(c-toggle-auto-newline t)                            ; auto newline
    33             ;; indentation
    34 				(auto-fill-mode t)                                   ; word wrap
    34             (setq tab-width 3)
       
    35             (setq c-basic-offset 3)
       
    36             (setq indent-tabs-mode t)
    35 
    37 
    36 				;; custom keys
    38             (c-toggle-auto-newline t)                            ; auto newline
    37 				(local-set-key (kbd "C-c f")   'ff-find-other-file)  ; toggle header/source file
    39             (auto-fill-mode t)                                   ; word wrap
    38 				(local-set-key (kbd "C-c C-c") 'comment-or-uncomment-region)
       
    39 
    40 
    40 				;; code folding
    41             ;; custom keys
    41 				(local-set-key (kbd "C-c v") 'hs-toggle-hiding)
    42             (local-set-key (kbd "C-c f")   'ff-find-other-file)  ; toggle header/source file
    42 				(local-set-key (kbd "<f1>")  'hs-hide-all)
    43             (local-set-key (kbd "C-c C-c") 'comment-or-uncomment-region)
    43 				(local-set-key (kbd "<f2>")  'hs-show-all)
       
    44 				(hs-minor-mode t)                                    ; enable hide-show mode
       
    45 				(hs-hide-all)                                        ; hide all blocks by default
       
    46 
    44 
    47 				;; highlight todos
    45             ;; code folding
    48 				(font-lock-add-keywords
    46             (local-set-key (kbd "C-c v") 'hs-toggle-hiding)
    49 				 nil
    47             (local-set-key (kbd "<f1>")  'hs-hide-all)
    50 				 '(("\\([@]\\(TODO\\|todo\\|warning\\)\\)" 1 font-lock-warning-face t)))))
    48             (local-set-key (kbd "<f2>")  'hs-show-all)
       
    49             (hs-minor-mode t)                                    ; enable hide-show mode
       
    50             (hs-hide-all)                                        ; hide all blocks by default
       
    51 
       
    52             ;; highlight todos
       
    53             (font-lock-add-keywords
       
    54              nil
       
    55              '(("\\([@]\\(TODO\\|todo\\|warning\\|note\\)\\)" 1 font-lock-warning-face t)))))