From aa97b3ac76e7c74c555cb64cf6353f1d32859f4a Mon Sep 17 00:00:00 2001
From: Joel Grunbaum <joelgrun@gmail.com>
Date: Wed, 22 Dec 2021 07:39:02 +0000
Subject: [PATCH] Enable clang format with an attempt at automatic detection of a format config file
---
config.org | 36 +++++++++++++++++++++++-------------
1 files changed, 23 insertions(+), 13 deletions(-)
diff --git a/config.org b/config.org
index 9bbc17f..849d2c0 100644
--- a/config.org
+++ b/config.org
@@ -1032,19 +1032,29 @@
**** 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 nil t))
- (add-hook 'c-mode-hook 'clang-format-on-save nil t)
- (add-hook 'c++-mode-hook 'clang-format-on-save nil t))
+ (defun set-clang-format-style ()
+ (if (file-exists-p (concat
+ (projectile-project-root)
+ ".clang-format"))
+ (setq-local clang-format-style nil)
+ (setq-local clang-format-style (concat "{BasedOnStyle: LLVM,"
+ "IndentWidth: " (format "%s" tab-width) ","
+ "UseTab: " (if (eq indent-tabs-mode nil)
+ "Never"
+ "AlignWithSpaces")
+ ","
+ "BreakBeforeBraces: Linux,"
+ "AllowShortIfStatementsOnASingleLine: false,"
+ "IndentCaseLabels: false}"))))
+
+ (use-package clang-format
+ :ensure t
+ :hook (c-mode-common . (set-clang-format-style)))
+
+ ;; (defun clang-format-on-save ()
+ ;; (add-hook 'before-save-hook 'clang-format-buffer nil t))
+ ;; (add-hook 'c-mode-hook 'clang-format-on-save nil t)
+ ;; (add-hook 'c++-mode-hook 'clang-format-on-save nil t))
#+END_SRC
*** emacs-lisp
**** COMMENT Company
--
Gitblit v1.10.0