From af754adb7b39c5a8d4a89c9f27095b3f7a0c3cae Mon Sep 17 00:00:00 2001 From: Paul Carduner Date: Fri, 5 May 2017 09:10:59 -0700 Subject: [PATCH] Make prettier into a global minor mode that can be toggled on and off (#1496) --- editors/emacs/README.md | 8 ++------ editors/emacs/prettier-js.el | 9 +++++++++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/editors/emacs/README.md b/editors/emacs/README.md index 59cc1a53..7a6215ec 100644 --- a/editors/emacs/README.md +++ b/editors/emacs/README.md @@ -2,9 +2,7 @@ Add this to your init: ```elisp (require 'prettier-js) -(add-hook 'js-mode-hook - (lambda () - (add-hook 'before-save-hook 'prettier-before-save))) +(prettier-mode) ``` If you don't use `js-mode`, which is what Prettier targets by default, you'll need to first set your major-mode of choice: @@ -12,9 +10,7 @@ If you don't use `js-mode`, which is what Prettier targets by default, you'll ne ```elisp (require 'prettier-js) (setq prettier-target-mode "js2-mode") -(add-hook 'js2-mode-hook - (lambda () - (add-hook 'before-save-hook 'prettier-before-save))) +(prettier-mode) ``` To adjust the CLI args used for the prettier command, you can customize the `prettier-args` variable: diff --git a/editors/emacs/prettier-js.el b/editors/emacs/prettier-js.el index 1dd819bc..52ddd1d7 100644 --- a/editors/emacs/prettier-js.el +++ b/editors/emacs/prettier-js.el @@ -219,4 +219,13 @@ function." (delete-file bufferfile) (delete-file outputfile))) +;;;###autoload +(define-minor-mode prettier-mode + "Runs prettier on file save when this mode is turned on" + :lighter " prettier" + :global t + (if prettier-mode + (add-hook 'before-save-hook 'prettier-before-save) + (remove-hook 'before-save-hook 'prettier-before-save))) + (provide 'prettier-js)