ruby: Add support for botch rspec and ruby-test
Add more keybinds and update README
This commit is contained in:
parent
ecf237af18
commit
cf5bc0a634
|
@ -8,9 +8,11 @@
|
|||
- [[Install][Install]]
|
||||
- [[Prerequisites][Prerequisites]]
|
||||
- [[Ruby version management][Ruby version management]]
|
||||
- [[Testing frameworks][Testing frameworks]]
|
||||
- [[Key bindings][Key bindings]]
|
||||
- [[Ruby (enh-ruby-mode, robe, inf-ruby, ruby-tools)][Ruby (enh-ruby-mode, robe, inf-ruby, ruby-tools)]]
|
||||
- [[ruby-test-mode][ruby-test-mode]]
|
||||
- [[RSpec-mode][RSpec-mode]]
|
||||
- [[Ruby-test-mode][Ruby-test-mode]]
|
||||
- [[RuboCop][RuboCop]]
|
||||
|
||||
* Description
|
||||
|
@ -68,6 +70,17 @@ To enable it, set the =ruby-version-manager= var in your =~/.spacemacs=:
|
|||
|
||||
Possible values are =rbenv= and =rvm=.
|
||||
|
||||
** Testing frameworks
|
||||
This layer supports both RSpec and ruby-test.
|
||||
By default RSpec is used, this is a change in the old behaviour.
|
||||
To switch to using ruby-test set =ruby-use-ruby-test= to t:
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(defun dotspacemacs/user-init ()
|
||||
(setq-default ruby-use-ruby-test t)
|
||||
)
|
||||
#+END_SRC
|
||||
|
||||
* Key bindings
|
||||
** Ruby (enh-ruby-mode, robe, inf-ruby, ruby-tools)
|
||||
|
||||
|
@ -88,9 +101,16 @@ Possible values are =rbenv= and =rvm=.
|
|||
| ~SPC m x :~ | Change string to symbol |
|
||||
| ~%~ | [[https://github.com/redguardtoo/evil-matchit][evil-matchit]] jumps between blocks |
|
||||
|
||||
** ruby-test-mode
|
||||
ruby-test-mode comes bundled with spacemacs, but this contribution adds
|
||||
a couple of useful keybindings:
|
||||
** RSpec-mode
|
||||
|
||||
| Key binding | Description |
|
||||
|-------------+----------------------|
|
||||
| ~SPC m t a~ | run all specs |
|
||||
| ~SPC m t f~ | run last failed spec |
|
||||
| ~SPC m t r~ | re-run last spec |
|
||||
| ~SPC m t t~ | run spec at pointer |
|
||||
|
||||
** Ruby-test-mode
|
||||
|
||||
| Key binding | Description |
|
||||
|-------------+---------------------|
|
||||
|
|
|
@ -22,3 +22,6 @@ Otherwise use Enh Ruby Mode, which is the default.")
|
|||
|
||||
(defvar ruby-version-manager nil
|
||||
"If non nil defines the Ruby version manager (i.e. rbenv, rvm)")
|
||||
|
||||
(defvar ruby-use-ruby-test nil
|
||||
"If non-nil, use `ruby-test-mode' package instead of `rspec-mode'.")
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
flycheck
|
||||
robe
|
||||
ruby-test-mode
|
||||
rspec-mode
|
||||
ruby-tools
|
||||
rubocop
|
||||
))
|
||||
|
@ -26,6 +27,10 @@
|
|||
(add-to-list 'ruby-packages 'enh-ruby-mode)
|
||||
(add-to-list 'ruby-packages 'ruby-mode))
|
||||
|
||||
(if ruby-use-ruby-test
|
||||
(add-to-list 'ruby-packages 'ruby-test-mode)
|
||||
(add-to-list 'ruby-packages 'rspec-mode))
|
||||
|
||||
(when ruby-version-manager
|
||||
(add-to-list 'ruby-packages ruby-version-manager))
|
||||
|
||||
|
@ -42,9 +47,12 @@
|
|||
(use-package rvm
|
||||
:defer t
|
||||
:init (rvm-use-default)
|
||||
:config (dolist (hook '(ruby-mode-hook enh-ruby-mode-hook))
|
||||
:config
|
||||
(progn
|
||||
(setq rspec-use-rvm t)
|
||||
(dolist (hook '(ruby-mode-hook enh-ruby-mode-hook))
|
||||
(add-hook hook
|
||||
(lambda () (rvm-activate-corresponding-ruby))))))
|
||||
(lambda () (rvm-activate-corresponding-ruby)))))))
|
||||
|
||||
(defun ruby/init-ruby-mode ()
|
||||
(use-package ruby-mode
|
||||
|
@ -145,21 +153,23 @@
|
|||
"sR" 'ruby-send-region-and-go
|
||||
"ss" 'ruby-switch-to-inf)))))
|
||||
|
||||
(defun ruby/init-ruby-test-mode ()
|
||||
"Define keybindings for ruby test mode"
|
||||
(use-package ruby-test-mode
|
||||
(defun ruby/init-rspec-mode ()
|
||||
"Define keybindings for rspec mode"
|
||||
(use-package rspec-mode
|
||||
:defer t
|
||||
:init (dolist (hook '(ruby-mode-hook enh-ruby-mode-hook))
|
||||
(add-hook hook 'ruby-test-mode))
|
||||
(add-hook hook 'rspec-mode))
|
||||
:config
|
||||
(progn
|
||||
(spacemacs|hide-lighter ruby-test-mode)
|
||||
(spacemacs|hide-lighter rspec-mode)
|
||||
(dolist (mode '(ruby-mode enh-ruby-mode))
|
||||
(spacemacs/declare-prefix-for-mode mode "mt" "ruby/test")
|
||||
(spacemacs/set-leader-keys-for-major-mode mode
|
||||
"tb" 'ruby-test-run)
|
||||
(spacemacs/set-leader-keys-for-major-mode mode
|
||||
"tt" 'ruby-test-run-at-point)))))
|
||||
"ta" 'rspec-verify-all
|
||||
"tc" 'rspec-verify-matching
|
||||
"tf" 'rspec-run-last-failed
|
||||
"tr" 'rspec-rerun
|
||||
"tt" 'rspec-verify-single)))))
|
||||
|
||||
(defun ruby/init-rubocop ()
|
||||
(use-package rubocop
|
||||
|
@ -178,6 +188,20 @@
|
|||
"rrp" 'rubocop-check-project
|
||||
"rrP" 'rubocop-autocorrect-project)))))
|
||||
|
||||
(defun ruby/init-ruby-test-mode ()
|
||||
"Define keybindings for ruby test mode"
|
||||
(use-package ruby-test-mode)
|
||||
:defer t
|
||||
:init (dolist (hook '(ruby-mode-hook enh-ruby-mode-hook))
|
||||
(add-hook hook 'ruby-test-mode))
|
||||
:config
|
||||
(progn
|
||||
(spacemacs|hide-lighter ruby-test-mode)
|
||||
(dolist (mode '(ruby-mode enh-ruby-mode))
|
||||
(spacemacs/declare-prefix-for-mode mode "mt" "ruby/test")
|
||||
(evil-leader/set-key-for-mode mode "mtb" 'ruby-test-run)
|
||||
(evil-leader/set-key-for-mode mode "mtt" 'ruby-test-run-at-point))))
|
||||
|
||||
(when (configuration-layer/layer-usedp 'auto-completion)
|
||||
(defun ruby/post-init-company ()
|
||||
(spacemacs|add-company-hook ruby-mode)
|
||||
|
|
Loading…
Reference in New Issue