parent
ab1daebb85
commit
f6242346f9
1 changed files with 35 additions and 29 deletions
|
@ -7,40 +7,45 @@
|
|||
;;
|
||||
;;; Packages
|
||||
|
||||
(after! ruby-mode
|
||||
(setq ruby-insert-encoding-magic-comment nil)
|
||||
(when (require 'enh-ruby-mode nil t)
|
||||
(rassq-delete-all 'ruby-mode interpreter-mode-alist)))
|
||||
|
||||
|
||||
(use-package! enh-ruby-mode
|
||||
:mode ("\\.\\(?:pry\\|irb\\)rc\\'" . +ruby-init-h)
|
||||
:mode ("\\.\\(?:rb\\|arb\\|axlsx\\|rake\\|rabl\\|ru\\|builder\\|gemspec\\|podspec\\|jbuilder\\|thor\\)\\'" . +ruby-init-h)
|
||||
:mode ("/\\(?:Berks\\|Brew\\|Cap\\|Fast\\|Gem\\|Guard\\|Pod\\|Puppet\\|Rake\\|Thor\\|Vagrant\\)file\\'" . +ruby-init-h)
|
||||
:interpreter ("j?ruby\\([0-9.]+\\)" . +ruby-init-h)
|
||||
:preface
|
||||
(defun +ruby-init-h ()
|
||||
"Enable `enh-ruby-mode' if ruby is available, otherwise `ruby-mode'."
|
||||
(if (executable-find "ruby")
|
||||
(enh-ruby-mode)
|
||||
(ruby-mode)))
|
||||
(use-package! ruby-mode ; built-in
|
||||
;; Other extensions are already registered in `auto-mode-alist' by `ruby-mode'
|
||||
:mode "\\.\\(?:a?rb\\|aslsx\\)\\'"
|
||||
:mode "/\\(?:Brew\\|Fast\\)file\\'"
|
||||
:interpreter "j?ruby\\([0-9.]+\\)"
|
||||
:config
|
||||
(setq ruby-insert-encoding-magic-comment nil)
|
||||
|
||||
(set-electric! '(ruby-mode enh-ruby-mode) :words '("else" "end" "elsif"))
|
||||
(set-repl-handler! '(ruby-mode enh-ruby-mode) #'inf-ruby)
|
||||
|
||||
(when (featurep! +lsp)
|
||||
(add-hook 'enh-ruby-mode-local-vars-hook #'lsp!))
|
||||
(add-hook! '(ruby-mode-local-vars-hook
|
||||
enh-ruby-mode-local-vars-hook)
|
||||
#'lsp!))
|
||||
|
||||
(after! company-dabbrev-code
|
||||
(add-to-list 'company-dabbrev-code-modes 'enh-ruby-mode)
|
||||
(add-to-list 'company-dabbrev-code-modes 'ruby-mode))
|
||||
(pushnew 'company-dabbrev-code-modes 'enh-ruby-mode 'ruby-mode))
|
||||
|
||||
(after! inf-ruby
|
||||
;; switch to inf-ruby from compile if we detect a breakpoint has been hit
|
||||
(add-hook 'compilation-filter-hook #'inf-ruby-auto-enter))
|
||||
|
||||
;; so class and module pairs work
|
||||
(setq-hook! (ruby-mode enh-ruby-mode) sp-max-pair-length 6))
|
||||
(setq-hook! (ruby-mode enh-ruby-mode) sp-max-pair-length 6)
|
||||
|
||||
(map! :localleader
|
||||
:map (ruby-mode-map enh-ruby-mode-map)
|
||||
"[" #'enh-ruby-toggle-block
|
||||
"{" #'enh-ruby-toggle-block))
|
||||
|
||||
|
||||
(use-package! enh-ruby-mode
|
||||
:when (executable-find "ruby")
|
||||
:after ruby-mode
|
||||
:config
|
||||
;; If ruby is present, `enh-ruby-mode' provides superior (semantic) syntax
|
||||
;; highlighting so use it instead.
|
||||
(advice-add #'ruby-mode :override #'enh-ruby-mode))
|
||||
|
||||
|
||||
(use-package! robe
|
||||
|
@ -53,9 +58,9 @@
|
|||
(bound-and-true-p lsp--buffer-deferred))
|
||||
(robe-mode +1))))
|
||||
:config
|
||||
(set-repl-handler! 'enh-ruby-mode #'robe-start)
|
||||
(set-company-backend! 'enh-ruby-mode 'company-robe 'company-dabbrev-code)
|
||||
(set-lookup-handlers! 'enh-ruby-mode
|
||||
(set-repl-handler! '(ruby-mode enh-ruby-mode) #'robe-start)
|
||||
(set-company-backend! '(ruby-mode enh-ruby-mode) 'company-robe 'company-dabbrev-code)
|
||||
(set-lookup-handlers! '(ruby-mode enh-ruby-mode)
|
||||
:definition #'robe-jump
|
||||
:documentation #'robe-doc)
|
||||
(map! :localleader
|
||||
|
@ -79,6 +84,7 @@
|
|||
|
||||
|
||||
(use-package! rubocop
|
||||
:hook (ruby-mode . rubocop-mode)
|
||||
:hook (enh-ruby-mode . rubocop-mode)
|
||||
:config
|
||||
(map! :localleader
|
||||
|
@ -96,9 +102,9 @@
|
|||
:defer t
|
||||
:init
|
||||
(setq rake-cache-file (concat doom-cache-dir "rake.cache"))
|
||||
(map! :after enh-ruby-mode
|
||||
(map! :after ruby-mode
|
||||
:localleader
|
||||
:map enh-ruby-mode-map
|
||||
:map (ruby-mode-map enh-ruby-mode-map)
|
||||
:prefix "k"
|
||||
"k" #'rake
|
||||
"r" #'rake-rerun
|
||||
|
@ -108,9 +114,9 @@
|
|||
(use-package! bundler
|
||||
:defer t
|
||||
:init
|
||||
(map! :after enh-ruby-mode
|
||||
(map! :after ruby-mode
|
||||
:localleader
|
||||
:map enh-ruby-mode-map
|
||||
:map (ruby-mode-map enh-ruby-mode-map)
|
||||
:prefix "b"
|
||||
"c" #'bundle-check
|
||||
"C" #'bundle-console
|
||||
|
@ -121,8 +127,8 @@
|
|||
|
||||
(use-package! chruby
|
||||
:when (featurep! +chruby)
|
||||
:hook (enh-ruby-mode . chruby-use-corresponding)
|
||||
:hook (ruby-mode . chruby-use-corresponding)
|
||||
:hook (enh-ruby-mode . chruby-use-corresponding)
|
||||
:config
|
||||
(setq rspec-use-rvm nil
|
||||
rspec-use-chruby t))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue