blob: 3a2b47cee1db138a13c2b9a7241f81dd69879c59 [file] [log] [blame]
Misha Brukman55d2a1a2005-04-24 17:09:19 +00001;; LLVM coding style guidelines in emacs
Reid Spencerb7b83172006-03-14 06:05:05 +00002;; Maintainer: LLVM Team, http://llvm.org/
Misha Brukman55d2a1a2005-04-24 17:09:19 +00003
Andrew Savonichev47b59392018-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 Ramachandrac429da82015-01-22 20:56:25 +000013;; Add a cc-mode style for editing LLVM C and C++ code
Mike Stump675e7542009-03-04 14:14:37 +000014(c-add-style "llvm.org"
Ramkumar Ramachandrac429da82015-01-22 20:56:25 +000015 '("gnu"
16 (fill-column . 80)
Mike Stump675e7542009-03-04 14:14:37 +000017 (c++-indent-level . 2)
18 (c-basic-offset . 2)
Daniel Dunbara02446a2009-07-28 17:34:57 +000019 (indent-tabs-mode . nil)
Will Newtonf1f65242014-12-09 08:58:31 +000020 (c-offsets-alist . ((arglist-intro . ++)
21 (innamespace . 0)
Andrew Savonichev47b59392018-08-02 08:50:41 +000022 (member-init-intro . ++)
23 (statement-cont . llvm-lineup-statement)))))
Daniel Dunbara02446a2009-07-28 17:34:57 +000024
Will Newtonf1f65242014-12-09 08:58:31 +000025;; Files with "llvm" in their names will automatically be set to the
26;; llvm.org coding style.
Ramkumar Ramachandrac429da82015-01-22 20:56:25 +000027(add-hook 'c-mode-common-hook
Mike Stump675e7542009-03-04 14:14:37 +000028 (function
29 (lambda nil
30 (if (string-match "llvm" buffer-file-name)
31 (progn
Ramkumar Ramachandrac429da82015-01-22 20:56:25 +000032 (c-set-style "llvm.org"))))))