blob: 3a2b47cee1db138a13c2b9a7241f81dd69879c59 [file] [log] [blame]
Misha Brukman3e9634e2005-04-24 17:09:19 +00001;; LLVM coding style guidelines in emacs
Reid Spencer552aa012006-03-14 06:05:05 +00002;; Maintainer: LLVM Team, http://llvm.org/
Misha Brukman3e9634e2005-04-24 17:09:19 +00003
Andrew Savonichev04a8f1e2018-08-02 08:50:41 +00004(defun llvm-lineup-statement (langelem)
5 (let ((in-assign (c-lineup-assignments langelem)))
6 (if (not in-assign)
7 '++
8 (aset in-assign 0
9 (+ (aref in-assign 0)
10 (* 2 c-basic-offset)))
11 in-assign)))
12
Ramkumar Ramachandra312beb12015-01-22 20:56:25 +000013;; Add a cc-mode style for editing LLVM C and C++ code
Mike Stump436f0ef2009-03-04 14:14:37 +000014(c-add-style "llvm.org"
Ramkumar Ramachandra312beb12015-01-22 20:56:25 +000015 '("gnu"
16 (fill-column . 80)
Mike Stump436f0ef2009-03-04 14:14:37 +000017 (c++-indent-level . 2)
18 (c-basic-offset . 2)
Daniel Dunbarbca21052009-07-28 17:34:57 +000019 (indent-tabs-mode . nil)
Will Newton3b7d03b2014-12-09 08:58:31 +000020 (c-offsets-alist . ((arglist-intro . ++)
21 (innamespace . 0)
Andrew Savonichev04a8f1e2018-08-02 08:50:41 +000022 (member-init-intro . ++)
23 (statement-cont . llvm-lineup-statement)))))
Daniel Dunbarbca21052009-07-28 17:34:57 +000024
Will Newton3b7d03b2014-12-09 08:58:31 +000025;; Files with "llvm" in their names will automatically be set to the
26;; llvm.org coding style.
Ramkumar Ramachandra312beb12015-01-22 20:56:25 +000027(add-hook 'c-mode-common-hook
Mike Stump436f0ef2009-03-04 14:14:37 +000028 (function
29 (lambda nil
30 (if (string-match "llvm" buffer-file-name)
31 (progn
Ramkumar Ramachandra312beb12015-01-22 20:56:25 +000032 (c-set-style "llvm.org"))))))