From 50f230f27f2b0c22db46d9ed5da25ece405aeab4 Mon Sep 17 00:00:00 2001 From: syl20bnr Date: Fri, 20 Feb 2015 07:29:24 -0500 Subject: [PATCH] Correctly lazy load ruby-end and fix its activation in ruby mode resolves #644 --- contrib/lang/erlang-elixir/packages.el | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/contrib/lang/erlang-elixir/packages.el b/contrib/lang/erlang-elixir/packages.el index 06212547e..f7f2525b0 100644 --- a/contrib/lang/erlang-elixir/packages.el +++ b/contrib/lang/erlang-elixir/packages.el @@ -80,13 +80,14 @@ which require an initialization must be listed explicitly in the list.") :defer t :config (progn - (require 'ruby-end) + (defun auto-activate-ruby-end-mode-for-elixir-mode () + (set (make-variable-buffer-local 'ruby-end-expand-keywords-before-re) + "\\(?:^\\|\\s-+\\)\\(?:do\\)") + (set (make-variable-buffer-local 'ruby-end-check-statement-modifiers) + nil) + (ruby-end-mode +1)) (add-to-list 'elixir-mode-hook - (defun auto-activate-ruby-end-mode-for-elixir-mode () - (set (make-variable-buffer-local 'ruby-end-expand-keywords-before-re) - "\\(?:^\\|\\s-+\\)\\(?:do\\)") - (set (make-variable-buffer-local 'ruby-end-check-statement-modifiers) nil) - (ruby-end-mode +1)))))) + 'auto-activate-ruby-end-mode-for-elixir-mode)))) (defun erlang-elixir/init-erlang () (use-package erlang @@ -132,4 +133,9 @@ which require an initialization must be listed explicitly in the list.") (defun erlang-elixir/init-ruby-end () (use-package ruby-end :defer t - :config (spacemacs|hide-lighter ruby-end-mode))) + :config + (progn + (spacemacs|hide-lighter ruby-end-mode) + ;; hack to remove the autoloaded `add-hook' in `ruby-end' + (remove-hook 'ruby-mode-hook 'ruby-end-mode) + (remove-hook 'enh-ruby-mode-hook 'ruby-end-mode))))