[emacs] Indent statement continuation to match clang-format
authorAndrew Savonichev <andrew.savonichev@intel.com>
Thu, 2 Aug 2018 08:50:41 +0000 (08:50 +0000)
committerAndrew Savonichev <andrew.savonichev@intel.com>
Thu, 2 Aug 2018 08:50:41 +0000 (08:50 +0000)
Summary:
Was:

  int LongVariableName =
    veryLongFunctionNameThatExceeds80ColumnsRule(SomeParameter);

  int ShortVar = veryLongFunctionNameThatStillFitsIntoOneLine(SomeParameter)
    .nowThisDoesntFit()
    .andThis()

Now:

  int LongVariableName =
      veryLongFunctionNameThatExceeds80ColumnsRule(SomeParameter);

  int ShortVar = veryLongFunctionNameThatStillFitsIntoOneLine(SomeParameter)
                     .nowThisDoesntFit()
                     .andThis()

Reviewers: espindola, MaskRay

Reviewed By: MaskRay

Subscribers: greened, llvm-commits

Differential Revision: https://reviews.llvm.org/D49726

llvm-svn: 338686

llvm/utils/emacs/emacs.el

index 4a3a503..3a2b47c 100644 (file)
@@ -1,6 +1,15 @@
 ;; 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"
@@ -10,7 +19,8 @@
               (indent-tabs-mode . nil)
               (c-offsets-alist . ((arglist-intro . ++)
                                   (innamespace . 0)
-                                  (member-init-intro . ++)))))
+                                  (member-init-intro . ++)
+                                  (statement-cont . llvm-lineup-statement)))))
 
 ;; Files with "llvm" in their names will automatically be set to the
 ;; llvm.org coding style.