diff options
| -rw-r--r-- | emacs/init.el | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/emacs/init.el b/emacs/init.el index f99b1d2..3dba4f7 100644 --- a/emacs/init.el +++ b/emacs/init.el @@ -52,15 +52,20 @@ '(makefile-gmake-mode makefile-mode makefile-imake-mode makefile-makepp-mode makefile-bsdmake-mode makefile-automake-mode)) -(defvar my/prog-cleanup-indent-max-lines 500) +(defvar my/prog-cleanup-indent-max-lines 500 "Nil for no limit.") (defun my/clean-prog-file (&optional buffer) "Fixes whitespace etc in BUFFER or current buffer." (unless buffer (setq buffer (current-buffer))) (with-current-buffer buffer - (when (< (car (buffer-line-statistics buffer)) - my/prog-cleanup-indent-max-lines) - (indent-region (point-min) (point-max))) + (cond + ((derived-mode-p '(c-mode c++-mode)) + (clang-format-buffer)) + ((not (eq major-mode 'fundamental-mode)) + (when (and my/prog-cleanup-indent-max-lines + (< (car (buffer-line-statistics buffer)) + my/prog-cleanup-indent-max-lines)) + (indent-region (point-min) (point-max))))) (unless (member major-mode my/prog-cleanup-want-tabs-modes) (untabify (point-min) (point-max))) (delete-trailing-whitespace))) @@ -72,6 +77,8 @@ (hs-minor-mode 1) (display-fill-column-indicator-mode 1) (smerge-mode 1) + (when (derived-mode-p '(c-mode c++-mode)) + (c-guess)) (add-hook 'before-save-hook (lambda () (unless (member major-mode my/prog-cleanup-excluded-modes) @@ -708,6 +715,8 @@ current layout." (use-package rust-mode) +(use-package clang-format) + (use-package opam-switch-mode :config (when (and (file-exists-p "~/.opam") (executable-find "opam")) |
