(defconst netbsd-knf-style '((c-auto-newline . nil) (c-tab-always-indent . nil) (c-recognize-knr-p . t) (c-basic-offset . 4) (c-comment-only-line-offset . 0) (c-cleanup-list . (brace-else-brace empty-defun-braces defun-close-semi list-close-comma scope-operator)) (c-hanging-braces-alist . ((defun-open . (before after)) (defun-close . (before)) (class-open . (after)) (class-close . nil) (inline-open . nil) (inline-close . nil) (block-open . (after)) (block-close . (before)) (substatement-open . nil) (statement-case-open . nil) (brace-list-open . nil) (brace-list-close . nil) (brace-list-intro . nil) (brace-list-entry . nil) )) (c-offsets-alist . ((knr-argdecl-intro . +) (arglist-cont-nonempty . 4) (knr-argdecl . 0) (block-open . -) (label . -) (statement-cont . 4) ))) "NetBSD KNF Style") (defun knf-c-mode-hook () ;; Add style and set it for current buffer (c-add-style "NetBSD KNF" netbsd-knf-style t) ;; Offset customizations that are not in this style (??) (c-set-offset 'member-init-intro '++) ;; Other stuff (setq tab-width 4 indent-tabs-mode t) ;; (define-key c-mode-map "\C-m" 'newline-and-indent) ) (add-hook 'c-mode-hook 'knf-c-mode-hook) (global-font-lock-mode 't) ;; (global-linum-mode 1) (global-set-key "\C-?" 'backward-delete-char) (menu-bar-mode nil) (add-to-list 'load-path "~/.emacs.d/") (add-hook 'c-mode-common-hook (lambda () (font-lock-add-keywords nil '( ;; colorize generic functions ("[( \t]+\\([a-zA-Z_]+\\)(" 1 '(:foreground "#52e3f6")) ;; numbers or NULL ("[^a-zA-Z0-9_]+\\([0-9]+\\|NULL\\)[^a-zA-Z0-9_]*" 1 '(:foreground "#C48CFF")) ;; same colors for macros than constants ("[^a-zA-Z0-9_]+\\([_A-Z]+[0-9A-Z_]+\\)" 1 font-lock-constant-face) )))) (require 'color-theme) (eval-after-load "color-theme" '(progn (color-theme-initialize) (setq color-theme-is-cumulative t) (color-theme-imil)))