From 27d33bcdb6196199cee3334a9e8e440b5f3ed996 Mon Sep 17 00:00:00 2001
From: Joel Grunbaum <joelgrun@gmail.com>
Date: Mon, 26 Oct 2020 04:30:48 +0000
Subject: [PATCH] Automatic C indentation with clang-format, tab width 8 to try out

---
 config.org |   22 +++++++++++++++++++---
 1 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/config.org b/config.org
index a947797..565bfa6 100644
--- a/config.org
+++ b/config.org
@@ -607,7 +607,7 @@
 #+BEGIN_SRC emacs-lisp
   (setq c-default-style '((java-mode . "java")
                          (awk-mode . "awk")
-                         (other . "k&r")))
+                         (other . "linux")))
 #+END_SRC
 
 ** Coding system
@@ -618,7 +618,7 @@
   (set-language-environment "UTF-8")
   (prefer-coding-system 'utf-8)
   (setq-default indent-tabs-mode t
-                tab-width 4
+                tab-width 8
                 c-basic-offset tab-width
                 cperl-indent-level tab-width)
   (delete-selection-mode)
@@ -980,7 +980,23 @@
                                      company-dabbrev-code
                                      company-irony)))
 #+END_SRC
-
+**** Clang-format
+Automatically format buffer on save.
+#+BEGIN_SRC emacs-lisp
+  (when (file-exists-p "/usr/share/clang/clang-format.el")
+    (load "/usr/share/clang/clang-format.el")
+    (setq clang-format-linux-style (concat "{BasedOnStyle: LLVM,"
+                                           "IndentWidth: 8,"
+                                           "UseTab: Always,"
+                                           "BreakBeforeBraces: Linux,"
+                                           "AllowShortIfStatementsOnASingleLine: false,"
+                                           "IndentCaseLabels: false}"))
+    (setq-default clang-format-style clang-format-linux-style)
+    (defun clang-format-on-save ()
+      (add-hook 'before-save-hook 'clang-format-buffer))
+    (add-hook 'c-mode-hook 'clang-format-on-save)
+    (add-hook 'c++-mode-hook 'clang-format-on-save))
+#+END_SRC
 *** emacs-lisp
 **** COMMENT company
 Add slime backend.

--
Gitblit v1.9.3