mirror of https://github.com/Chizi123/.emacs.d.git

Joel Grunbaum
2021-12-22 aa97b3ac76e7c74c555cb64cf6353f1d32859f4a
Enable clang format with an attempt at automatic detection of a format
config file
1 files modified
36 ■■■■■ changed files
config.org 36 ●●●●● patch | view | raw | blame | history
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