From e2c3a7a6d43139291ea9dfe99afc53803d000427 Mon Sep 17 00:00:00 2001 From: brotzeit Date: Fri, 26 Nov 2021 19:59:47 +0100 Subject: allow changing rustfmt hook funtctions --- rust-mode.el | 15 ++++++++++++--- rust-rustfmt.el | 4 ++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/rust-mode.el b/rust-mode.el index 15f536e..4f7b005 100644 --- a/rust-mode.el +++ b/rust-mode.el @@ -31,6 +31,16 @@ This variable might soon be remove again.") (defvar electric-pair-skip-self) (defvar electric-indent-chars) +(defcustom rust-before-save-hook 'rust-before-save-method + "Function for formatting before save." + :type 'function + :group 'rust-mode) + +(defcustom rust-after-save-hook 'rust-after-save-method + "Default method to handle rustfmt invocation after save." + :type 'function + :group 'rust-mode) + ;;; Customization (defgroup rust-mode nil @@ -264,9 +274,8 @@ Use idomenu (imenu with `ido-mode') for best mileage.") 'rust-electric-pair-inhibit-predicate-wrap) (setq-local electric-pair-skip-self 'rust-electric-pair-skip-self-wrap) - (add-hook 'before-save-hook 'rust-before-save-hook nil t) - (add-hook 'after-save-hook 'rust-after-save-hook nil t) - ) + (add-hook 'before-save-hook rust-before-save-hook nil t) + (add-hook 'after-save-hook rust-after-save-hook nil t)) ;;;###autoload (add-to-list 'auto-mode-alist '("\\.rs\\'" . rust-mode)) diff --git a/rust-rustfmt.el b/rust-rustfmt.el index ddab81f..0690b84 100644 --- a/rust-rustfmt.el +++ b/rust-rustfmt.el @@ -347,7 +347,7 @@ Return the created process." ;;; Hooks -(defun rust-before-save-hook () +(defun rust-before-save-method () (when rust-format-on-save (condition-case e (rust-format-buffer) @@ -355,7 +355,7 @@ Return the created process." (car e) (cdr e)))))) -(defun rust-after-save-hook () +(defun rust-after-save-method () (when rust-format-on-save (if (not (executable-find rust-rustfmt-bin)) (error "Could not locate executable \"%s\"" rust-rustfmt-bin) -- cgit v1.2.3