mirror of
https://github.com/Stichting-MINIX-Research-Foundation/netbsd.git
synced 2025-09-12 00:24:52 -04:00
146 lines
4.6 KiB
EmacsLisp
146 lines
4.6 KiB
EmacsLisp
;; -*- lisp-interaction -*-
|
|
;; -*- emacs-lisp -*-
|
|
;;
|
|
;; Set emacs up for editing code using CVS indentation conventions.
|
|
;; See HACKING for more on what those conventions are.
|
|
;; To use, put in your .emacs:
|
|
;; (load "c-mode")
|
|
;; (load "cvs-format.el")
|
|
;; You need to load c-mode first or else when c-mode autoloads it will
|
|
;; clobber the settings from cvs-format.el. Using c-mode-hook perhaps would
|
|
;; be a cleaner way to handle that. Or see below about (set-c-style "BSD").
|
|
;;
|
|
;; Credits: Originally from the personal .emacs file of Rich Pixley,
|
|
;; then rich@cygnus.com, circa 1992. He sez "feel free to copy."
|
|
;;
|
|
;; If you have an Emacs that does not have "c-mode", but does have
|
|
;; "cc-mode" then put this into your .emacs:
|
|
;; (require 'cc-mode)
|
|
;; (load "cvs-format.el")
|
|
;; (add-hook 'c-mode-hook '(lambda () (c-set-style "cvshome")))
|
|
;;
|
|
;; Credit: From the personal .emacs file of Mark D. Baushke
|
|
; circa 2005. Feel free to do anything you want with it.
|
|
|
|
;;
|
|
;;
|
|
;; This section sets constants used by c-mode for formating
|
|
;;
|
|
;;
|
|
|
|
;; If `c-auto-newline' is non-`nil', newlines are inserted both
|
|
;;before and after braces that you insert, and after colons and semicolons.
|
|
;;Correct C indentation is done on all the lines that are made this way.
|
|
|
|
(if (boundp 'c-auto-newline)
|
|
(setq c-auto-newline nil))
|
|
|
|
|
|
;;*Non-nil means TAB in C mode should always reindent the current line,
|
|
;;regardless of where in the line point is when the TAB command is used.
|
|
;;It might be desirable to set this to nil for CVS, since unlike GNU
|
|
;; CVS often uses comments over to the right separated by TABs.
|
|
;; Depends some on whether you're in the habit of using TAB to
|
|
;; reindent.
|
|
;(setq c-tab-always-indent nil)
|
|
|
|
;;; It seems to me that
|
|
;;; `M-x set-c-style BSD RET'
|
|
;;; or
|
|
;;; (set-c-style "BSD")
|
|
;;; takes care of the indentation parameters correctly.
|
|
|
|
|
|
;; C does not have anything analogous to particular function names for which
|
|
;;special forms of indentation are desirable. However, it has a different
|
|
;;need for customization facilities: many different styles of C indentation
|
|
;;are in common use.
|
|
;;
|
|
;; There are six variables you can set to control the style that Emacs C
|
|
;;mode will use.
|
|
;;
|
|
;;`c-indent-level'
|
|
;; Indentation of C statements within surrounding block. The surrounding
|
|
;; block's indentation is the indentation of the line on which the
|
|
;; open-brace appears.
|
|
|
|
(if (boundp 'c-indent-level)
|
|
(setq c-indent-level 4))
|
|
|
|
;;`c-continued-statement-offset'
|
|
;; Extra indentation given to a substatement, such as the then-clause of
|
|
;; an if or body of a while.
|
|
|
|
(if (boundp 'c-continued-statement-offset)
|
|
(setq c-continued-statement-offset 4))
|
|
|
|
;;`c-brace-offset'
|
|
;; Extra indentation for line if it starts with an open brace.
|
|
|
|
(if (boundp 'c-brace-offset)
|
|
(setq c-brace-offset -4))
|
|
|
|
;;`c-brace-imaginary-offset'
|
|
;; An open brace following other text is treated as if it were this far
|
|
;; to the right of the start of its line.
|
|
|
|
(if (boundp 'c-brace-imaginary-offset)
|
|
(setq c-brace-imaginary-offset 0))
|
|
|
|
;;`c-argdecl-indent'
|
|
;; Indentation level of declarations of C function arguments.
|
|
|
|
(if (boundp 'c-argdecl-indent)
|
|
(setq c-argdecl-indent 4))
|
|
|
|
;;`c-label-offset'
|
|
;; Extra indentation for line that is a label, or case or default.
|
|
;; This doesn't quite do the right thing for CVS switches, which use the
|
|
;; switch (foo)
|
|
;; {
|
|
;; case 0:
|
|
;; break;
|
|
;; style. But if one manually aligns the first case, then the rest
|
|
;; should work OK.
|
|
(if (boundp 'c-label-offset)
|
|
(setq c-label-offset -2))
|
|
|
|
;;
|
|
;;
|
|
;; This section sets constants used by cc-mode for formating
|
|
;;
|
|
;;
|
|
|
|
;; Folks that are using cc-mode in the more modern version of Emacs
|
|
;; will likely find this useful
|
|
|
|
(if (and (fboundp 'featurep)
|
|
(featurep 'cc-styles)
|
|
(fboundp 'c-add-style))
|
|
(c-add-style "cvshome"
|
|
'((c-brace-offset . -4)
|
|
(c-basic-offset . 4)
|
|
(c-continued-statement-offset . (4 . 4))
|
|
(c-offsets-alist
|
|
. ((statement-block-intro . +)
|
|
(knr-argdecl-intro . 4)
|
|
(substatement-open . 0)
|
|
(label . 2)
|
|
(case-label . 2)
|
|
(statement-case-open . +)
|
|
(statement-cont . +)
|
|
(arglist-intro . c-lineup-arglist-intro-after-paren)
|
|
(arglist-close . c-lineup-arglist)
|
|
(inline-open . 0)
|
|
(brace-list-open . 0)))
|
|
(c-special-indent-hook . c-gnu-impose-minimum)
|
|
(c-block-comment-prefix . ""))))
|
|
|
|
;; You may now use the following when you wish to make use of the style:
|
|
;; `M-x c-set-style RET cvshome RET'
|
|
;; or
|
|
;; (c-set-style "cvshome")
|
|
;; to take care of things.
|
|
|
|
;;;; eof
|