diff --git a/docs/modules.org b/docs/modules.org index 0fa7f2672..4ee6e9104 100644 --- a/docs/modules.org +++ b/docs/modules.org @@ -131,7 +131,7 @@ Modules that bring support for a language or group of languages to Emacs. + qt - TODO + racket - TODO + [[file:../modules/lang/rest/README.org][rest]] - TODO -+ ruby =+lsp +rvm +rbenv= - TODO ++ ruby =+lsp +rvm +rbenv +rails= - TODO + [[file:../modules/lang/rust/README.org][rust]] =+lsp= - TODO + scala =+lsp= - TODO + [[file:../modules/lang/scheme/README.org][scheme]] - TODO diff --git a/modules/lang/ruby/config.el b/modules/lang/ruby/config.el index 2ae25cc02..eb663b992 100644 --- a/modules/lang/ruby/config.el +++ b/modules/lang/ruby/config.el @@ -63,7 +63,7 @@ "'" #'robe-start ;; robe mode specific "h" #'robe-doc - "rr" #'robe-rails-refresh + "R" #'robe-rails-refresh ;; inf-enh-ruby-mode :prefix "s" "d" #'ruby-send-definition @@ -168,3 +168,20 @@ "a" #'minitest-verify-all "s" #'minitest-verify-single "v" #'minitest-verify)) + + +(use-package! projectile-rails + :when (featurep! +rails) + :hook (enh-ruby-mode . projectile-rails-mode) + :init + (when (featurep! :lang web) + (add-hook 'web-mode-hook #'projectile-rails-mode)) + :config + (when (featurep! :editor evil) + (add-hook 'projectile-rails-mode-hook #'evil-normalize-keymaps)) + (map! :localleader + :map projectile-rails-mode-map + "r" #'projectile-rails-command-map) + (push '((nil . "projectile-rails-\\(.+\\)") . (nil . "\\1")) + which-key-replacement-alist) + (set-popup-rule! "^\\*\\(projectile-\\)?rails" :ttl nil)) diff --git a/modules/lang/ruby/packages.el b/modules/lang/ruby/packages.el index 84af6f149..ebac885f1 100644 --- a/modules/lang/ruby/packages.el +++ b/modules/lang/ruby/packages.el @@ -27,3 +27,8 @@ ;; Testing frameworks (package! rspec-mode :pin "c4353a1bff") (package! minitest :pin "6d9f6233b7") + +;; Rails +(when (featurep! +rails) + (package! projectile-rails :pin "228f631") + (package! inflections :pin "e4f1372"))