summaryrefslogtreecommitdiff
path: root/lisp/cpp.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/cpp.el')
-rw-r--r--lisp/cpp.el13
1 files changed, 10 insertions, 3 deletions
diff --git a/lisp/cpp.el b/lisp/cpp.el
index 5bb04a8..eb7660e 100644
--- a/lisp/cpp.el
+++ b/lisp/cpp.el
@@ -13,15 +13,22 @@
(c-set-offset 'arglist-intro '+)
(c-set-offset 'arglist-cont-non-empty '+)
(c-set-offset 'argslist-close '+)
+ (c-set-offset 'statement-cont 0)
)
(add-hook 'c-mode-common-hook 'setup-c)
-(defun create-cpp-class()
- "Create a cpp class."
- (interactive "Enter the name of the class: ")
+(defun mk/cpp/generate-compile-commands-cmake()
+ "Regenerates a compile_commands.json database"
+ (interactive)
+ (shell-command (format "cd %s && cmake -S . -B build -D CMAKE_EXPORT_COMPILE_COMMANDS=1" (projectile-project-root)))
)
+(defun maybe-regenerate-compile-commands()
+ (if (string= (buffer-file-name) "CMakeLists.txt")
+ (mk/cpp/generate-compile-commands-cmake)))
+
+(add-hook 'after-save-hook 'maybe-regenerate-compile-commands)
(provide 'cpp)
;;; cpp.el ends here