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