| ;; LLVM coding style guidelines in emacs |
| ;; Maintainer: LLVM Team, http://llvm.org/ |
| |
| (defun llvm-lineup-statement (langelem) |
| (let ((in-assign (c-lineup-assignments langelem))) |
| (if (not in-assign) |
| '++ |
| (aset in-assign 0 |
| (+ (aref in-assign 0) |
| (* 2 c-basic-offset))) |
| in-assign))) |
| |
| ;; Add a cc-mode style for editing LLVM C and C++ code |
| (c-add-style "llvm.org" |
| '("gnu" |
| (fill-column . 80) |
| (c++-indent-level . 2) |
| (c-basic-offset . 2) |
| (indent-tabs-mode . nil) |
| (c-offsets-alist . ((arglist-intro . ++) |
| (innamespace . 0) |
| (member-init-intro . ++) |
| (statement-cont . llvm-lineup-statement))))) |
| |
| ;; Files with "llvm" in their names will automatically be set to the |
| ;; llvm.org coding style. |
| (add-hook 'c-mode-common-hook |
| (function |
| (lambda nil |
| (if (string-match "llvm" buffer-file-name) |
| (progn |
| (c-set-style "llvm.org")))))) |