diff --git a/modules/module-js.el b/modules/module-js.el index 05353f5af..2c6560006 100644 --- a/modules/module-js.el +++ b/modules/module-js.el @@ -18,7 +18,47 @@ (add-hook! js2-mode (setenv "jsbeautify_indent_size" "4")) (bind! :map js2-mode-map :m "gQ" 'web-beautify-js)) - (after! emr (require 'js2-refactor)) + (use-package js2-refactor + :after emr + :init (add-hook! js2-mode 'emr-initialize) + :config + (mapc (lambda (x) + (let ((command-name (car x)) + (title (cadr x)) + (region-p (caddr x)) + predicate) + (setq predicate (cond ((eq region-p 'both) nil) + (t (if region-p + (lambda () (use-region-p)) + (lambda () (not (use-region-p))))))) + (emr-declare-command (intern (format "js2r-%s" (symbol-name command-name))) + :title title :modes 'js2-mode :predicate predicate))) + '((extract-function "extract function" t) + (extract-method "extract method" t) + (introduce-parameter "introduce parameter" t) + (localize-parameter "localize parameter" nil) + (expand-object "expand object" nil) + (contract-object "contract object" nil) + (expand-function "expand function" nil) + (contract-function "contract function" nil) + (expand-array "expand array" nil) + (contract-array "contract array" nil) + (wrap-buffer-in-iife "wrap buffer in ii function" nil) + (inject-global-in-iife "inject global in ii function" t) + (add-to-globals-annotation "add to globals annotation" nil) + (extract-var "extract variable" t) + (inline-var "inline variable" t) + (rename-var "rename variable" nil) + (var-to-this "var to this" nil) + (arguments-to-object "arguments to object" nil) + (ternary-to-if "ternary to if" nil) + (split-var-declaration "split var declaration" nil) + (split-string "split string" nil) + (unwrap "unwrap" t) + (log-this "log this" 'both) + (debug-this "debug this" 'both) + (forward-slurp "forward slurp" nil) + (forward-barf "forward barf" nil)))) ;; [pedantry intensifies] (defadvice js2-mode (after js2-mode-rename-modeline activate) diff --git a/modules/module-ruby.el b/modules/module-ruby.el index 903c8c0a5..64cf8f9cd 100644 --- a/modules/module-ruby.el +++ b/modules/module-ruby.el @@ -76,30 +76,23 @@ :after emr :init (add-hook! ruby-mode 'emr-initialize) :config - (emr-declare-command 'ruby-toggle-block - :title "toggle block" - :modes 'enh-ruby-mode - :predicate (lambda () (not (use-region-p)))) - (emr-declare-command 'ruby-refactor-extract-to-method - :title "extract method" - :modes 'enh-ruby-mode - :predicate (lambda () (use-region-p))) - (emr-declare-command 'ruby-refactor-extract-local-variable - :title "extract local variable" - :modes 'enh-ruby-mode - :predicate (lambda () (use-region-p))) - (emr-declare-command 'ruby-refactor-extract-constant - :title "extract constant" - :modes 'enh-ruby-mode - :predicate (lambda () (use-region-p))) - (emr-declare-command 'ruby-refactor-add-parameter - :title "add parameter" - :modes 'enh-ruby-mode - :predicate (lambda () (not (use-region-p)))) - (emr-declare-command 'ruby-refactor-extract-to-let - :title "extract to let" - :modes 'enh-ruby-mode - :predicate (lambda () (use-region-p)))) + (mapc (lambda (x) + (let ((command-name (car x)) + (title (cadr x)) + (region-p (caddr x)) + predicate) + (setq predicate (cond ((eq region-p 'both) nil) + (t (if region-p + (lambda () (use-region-p)) + (lambda () (not (use-region-p))))))) + (emr-declare-command (intern (format "ruby-%s" (symbol-name command-name))) + :title title :modes 'ruby-mode :predicate predicate))) + '((toggle-block "toggle block" nil) + (refactor-extract-to-method "extract method" t) + (refactor-extract-local-variable "extract local variable" t) + (refactor-extract-constant "extract constant" t) + (refactor-add-parameter "add parameter" nil) + (refactor-extract-to-let "extract to let" t)))) (provide 'module-ruby) ;;; module-ruby.el ends here