branch: elpa/rubocop
commit 03bf15558a6eb65e4f74000cab29412efd46660e
Author: Daniel Luna <[email protected]>
Commit: Bozhidar Batsov <[email protected]>
Run auto-correct automatically on save (#29)
---
rubocop.el | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/rubocop.el b/rubocop.el
index 26913f4..7a65b3a 100644
--- a/rubocop.el
+++ b/rubocop.el
@@ -68,6 +68,11 @@
:group 'rubocop
:type 'string)
+(defcustom rubocop-autocorrect-on-save nil
+ "Runs `rubocop-autocorrect-current-file' automatically on save."
+ :group 'rubocop
+ :type 'boolean)
+
(defcustom rubocop-prefer-system-executable nil
"Runs rubocop with the system executable even if inside a bundled project."
:group 'rubocop
@@ -187,6 +192,10 @@ Alternatively prompt user for directory."
(interactive)
(rubocop--file-command rubocop-autocorrect-command))
+(defun rubocop-autocorrect-current-file-silent ()
+ (if rubocop-autocorrect-on-save
+ (save-window-excursion (rubocop-autocorrect-current-file))))
+
(defun rubocop-bundled-p ()
"Check if RuboCop has been bundled."
(let ((gemfile-lock (expand-file-name "Gemfile.lock"
(rubocop-project-root))))
@@ -220,7 +229,10 @@ Alternatively prompt user for directory."
"Minor mode to interface with RuboCop."
:lighter " RuboCop"
:keymap rubocop-mode-map
- :group 'rubocop)
+ :group 'rubocop
+ (cond
+ (rubocop-mode (add-hook 'before-save-hook
'rubocop-autocorrect-current-file-silent nil t))
+ (t (remove-hook 'before-save-hook 'rubocop-autocorrect-current-file-silent
t))))
(provide 'rubocop)