summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--init.el12
-rw-r--r--lisp/cpp.el20
2 files changed, 25 insertions, 7 deletions
diff --git a/init.el b/init.el
index 6f793c6..77be056 100644
--- a/init.el
+++ b/init.el
@@ -74,12 +74,12 @@
"a27c00821ccfd5a78b01e4f35dc056706dd9ede09a8b90c6955ae6a390eb1c1e"
default))
'(package-selected-packages
- '(all-the-icons company-quickhelp css-eldoc dracula-theme drag-stuff
- fish-mode flycheck git-gutter-fringe go-mode
- hl-todo ledger-mode marginalia markdown-mode
- mood-line orderless org-download org-modern
- org-roam perfect-margin plantuml-mode projectile
- pyvenv rg rust-mode vertico web-mode
+ '(all-the-icons clang-format company-quickhelp css-eldoc dracula-theme
+ drag-stuff fish-mode flycheck git-gutter-fringe
+ go-mode hl-todo ledger-mode marginalia
+ markdown-mode mood-line orderless org-download
+ org-modern org-roam perfect-margin plantuml-mode
+ projectile pyvenv rg rust-mode vertico web-mode
yasnippet-snippets))
'(package-vc-selected-packages '((aider :url "https://github.com/tninja/aider.el")))
'(safe-local-variable-values
diff --git a/lisp/cpp.el b/lisp/cpp.el
index c22f771..d6b1cad 100644
--- a/lisp/cpp.el
+++ b/lisp/cpp.el
@@ -1,4 +1,9 @@
+(use-package clang-format
+ :ensure t)
+(use-package projectile
+ :ensure t)
+
;;; Code:
(defun setup-c()
"Set up c common mode."
@@ -26,10 +31,23 @@
(shell-command (format "cd %s && cmake -S . -B build -D CMAKE_EXPORT_COMPILE_COMMANDS=1" (projectile-project-root)))
)
-(defun maybe-regenerate-compile-commands()
+(defun mk/cpp/maybe-regenerate-compile-commands()
(if (string= (buffer-file-name) "CMakeLists.txt")
(mk/cpp/generate-compile-commands-cmake)))
+(defun mk/clang-format-buffer-if-project-file ()
+ "Run clang-format-buffer only if a .clang-format exists in the Projectile project."
+ (when (and (projectile-project-p) ; inside a projectile project
+ (locate-dominating-file (buffer-file-name) ".clang-format"))
+ (clang-format-buffer)))
+
+;; Add this hook to C/C++/ObjC modes
+(add-hook 'c-mode-common-hook
+ (lambda ()
+ (add-hook 'before-save-hook
+ #'mk/clang-format-buffer-if-project-file
+ nil 'local)))
+
(add-hook 'after-save-hook 'maybe-regenerate-compile-commands)
(provide 'cpp)