summaryrefslogtreecommitdiff
path: root/lisp/clang-format/clang-format.el
diff options
context:
space:
mode:
authorJohn Turner <jturner.usa@gmail.com>2023-09-25 05:50:16 -0400
committerJohn Turner <jturner.usa@gmail.com>2023-09-25 05:50:16 -0400
commit09fe05176537f871aeb1d65237fe13cd4dc0c0d5 (patch)
treef5fae55ffdec3fdc9d11d5f6bf0a0987637a6f4c /lisp/clang-format/clang-format.el
parent4f2985ce0273fab2e7d555430e2dabb4095fb9cd (diff)
downloademacs.d-09fe05176537f871aeb1d65237fe13cd4dc0c0d5.tar.gz
create lisp library clang-format
Diffstat (limited to 'lisp/clang-format/clang-format.el')
-rw-r--r--lisp/clang-format/clang-format.el39
1 files changed, 39 insertions, 0 deletions
diff --git a/lisp/clang-format/clang-format.el b/lisp/clang-format/clang-format.el
new file mode 100644
index 0000000..1e51c83
--- /dev/null
+++ b/lisp/clang-format/clang-format.el
@@ -0,0 +1,39 @@
+;;; clang-format.el --- -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2023 John Turner
+
+;; Author: John Turner
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+(defvar clang-format-exectuable "clang-format")
+
+(defvar clang-format-temp-buffer "*clang-format*")
+
+(defun clang-format-buffer ()
+ (interactive)
+ (let ((ret (call-process-region (point-min) (point-max) clang-format-exectuable
+ nil
+ (with-current-buffer (get-buffer-create clang-format-temp-buffer)
+ (erase-buffer)
+ (current-buffer))
+ nil)))
+ (if (zerop ret)
+ (replace-buffer-contents clang-format-temp-buffer)
+ (message "clang-format failed with exit code: %s (see %s for more details)"
+ ret,
+ clang-format-temp-buffer))))
+
+(provide 'clang-format)
+;;; clang-format.el ends here