Files
doomemacs/modules/lang/ruby
Henrik Lissner 8951de19d8 bump: :lang
JuliaEditorSupport/julia-emacs@2aca8cf585 -> JuliaEditorSupport/julia-emacs@0f4d74f904
ProofGeneral/PG@b30d65de80 -> ProofGeneral/PG@d668946929
abicky/nodejs-repl.el@03d0b64768 -> abicky/nodejs-repl.el@130d49b073
agda/agda@819993172d -> agda/agda@3344ca8058
ardumont/markdown-toc@3d724e518a -> ardumont/markdown-toc@d2fb4cbd95
babashka/neil@78ffab1868 -> babashka/neil@0b7373dd1b
clojure-emacs/cider@c228dec27d -> clojure-emacs/cider@f00e83d338
clojure-emacs/clojure-mode@59888c84b6 -> clojure-emacs/clojure-mode@eabe29b076
davazp/graphql-mode@c3baca9280 -> davazp/graphql-mode@ee49531935
dgutov/robe@6bc8a07fc4 -> dgutov/robe@ec4b7e74e9
diml/utop@b490baca21 -> diml/utop@3322adaa52
emacs-ess/ESS@8b4664e4a7 -> emacs-ess/ESS@c72b911d70
emacs-geiser/chicken@a480598b59 -> emacs-geiser/chicken@5f2c1bb446
emacs-geiser/geiser@97ce88463f -> emacs-geiser/geiser@74eed1669a
emacs-jupyter/jupyter@e966c5d3d6 -> emacs-jupyter/jupyter@db8a9e233a
emacs-lsp/lsp-metals@b5139c9593 -> emacs-lsp/lsp-metals@6a6a345a8a
emacs-php/php-mode@31f702ee2d -> emacs-php/php-mode@0f756a8c07
emacs-rustic/rustic@9fdf5c76b2 -> emacs-rustic/rustic@e5c0271f1e
emacs-straight/auctex@0de9730957 -> emacs-straight/auctex@f00256cbfd
emacs-straight/org-mode@6a5d0ed342 -> emacs-straight/org-mode@5a4686915e
emacsorphanage/macrostep@419873665f -> emacsorphanage/macrostep@44faf4f7bf
erlang/otp@094260aba7 -> erlang/otp@3e7f126fe4
fxbois/web-mode@0c83581d1e -> fxbois/web-mode@be2d59c8fa
gcv/julia-snail@dff92c4250 -> gcv/julia-snail@24f79a067b
godotengine/emacs-gdscript-mode@bee7f99c6f -> godotengine/emacs-gdscript-mode@c3d9988984
greghendershott/racket-mode@c5bee6895b -> greghendershott/racket-mode@f2645aadd2
hakimel/reveal.js@0d02d8a303 -> hakimel/reveal.js@e15cf92ccd
hvesalai/emacs-scala-mode@bd0638c32a -> hvesalai/emacs-scala-mode@661337d8aa
jrblevin/markdown-mode@b8637bae07 -> jrblevin/markdown-mode@e100778594
jwiegley/emacs-async@af47d6f930 -> jwiegley/emacs-async@b99658e831
jwiegley/nix-update-el@aab70a3816 -> jwiegley/nix-update-el@77022ccd91
nonsequitur/inf-ruby@6399a36682 -> nonsequitur/inf-ruby@dad78a13f1
ocaml/dune@5ac095c7c0 -> ocaml/dune@098117d229
ocaml/merlin@a36f42a5b1 -> ocaml/merlin@3a806ef87f
oer/org-re-reveal@91610ba9b0 -> oer/org-re-reveal@ab1422c163
org-roam/org-roam@2a630476b3 -> org-roam/org-roam@cad3518788
polymode/poly-R@e4a39caaf4 -> polymode/poly-R@8024e852cf
polymode/polymode@15b6c1e94a -> polymode/polymode@74ba75d4bc
psibi/dhall-mode@87ab69fe76 -> psibi/dhall-mode@fca383a9c4
purescript-emacs/purescript-mode@d187b3d4bb -> purescript-emacs/purescript-mode@07e4d6ecfe
rwv/android-mode@d5332e339a -> rwv/android-mode@67f7c0d7d3
seagle0128/grip-mode@d6c7e33e40 -> seagle0128/grip-mode@df0ba7589d
technomancy/fennel-mode@259470b297 -> technomancy/fennel-mode@3632cc77de
tpapp/julia-repl@bb90cc1fce -> tpapp/julia-repl@317d560218
2025-01-09 23:47:38 -05:00
..
2024-09-14 20:47:39 -04:00
2024-03-11 03:59:37 -04:00
2025-01-09 23:47:38 -05:00

:lang ruby

Description   unfold

This module add Ruby and optional Ruby on Rails support to Emacs.

Module flags

+chruby
Enable chruby integration.
+lsp
Enable LSP support for ruby-mode. Requires doom-module::tools lsp and a langserver (supports solargraph).
+rails
Enable rails navigational commands, plus server+console integration.
+rbenv
Enable rbenv integration.
+rvm
Enable RVM (Ruby Version Manager) integration.
+tree-sitter
Leverages tree-sitter for better syntax highlighting and structural text editing. Requires doom-module::tools tree-sitter.

Hacks

No hacks documented for this module.

TODO Changelog

This module does not have a changelog yet.

Installation

Enable this module in your doom! block.

This module requires Ruby and the Rubocop gem. It is recommended you install both with some version manager (RVM or Rbenv).

These guides will help you install Ruby:

Then run $ gem install rubocop to install rubocop.

Formatter

Formatting is handled using the doom-module::editor format module via prettier.

TODO Usage

󱌣 This module's usage documentation is incomplete. Complete it?

Commands

robe

command key / ex command description
robe-start <localleader> ' Open ruby lang server for auto-completions and jump to definitions
robe-rails-refresh <localleader> R Refresh the lang server.

projectile-rails

The projectile-rails prefix is <localleader> r:

command key / ex command description
projectile-rails-console <localleader> r r Open Rails console
projectile-rails-server <localleader> r R Open Rails server
projectile-rails-find-model <localleader> r m Find any model of the project
projectile-rails-find-model <localleader> r M Find the model related of currently open resource

bundler

The bundler prefix is <localleader> b:

command key / ex command description
bundle-install <localleader> b i Runs bundle install
bundle-update <localleader> b u Runs bundle update

rspec-mode

The rspec-mode prefix is <localleader> t:

command key / ex command description
rspec-verify SPC m t v Runs rspec on current file
rspec-verify-method SPC m t s Runs rspec for the item on cursor

TODO Configuration

󱌣 This module has no configuration documentation yet. Write some?

Troubleshooting

There are no known problems with this module. Report one?

Known imenu issues

These are recorded issues with ruby-mode's imenu integration that need to be addressed upstream. PRs to fix them locally are welcome.

  • Incorrectly parses methods/items after an array accessor endless method definition (Ruby 3+):

    class Foo
      def bar; end
      def baz; end
      def [](key) = x + x
      def wop; end
      def gop; end
    end

    Imenu will list Foo#bar, Foo#baz, and Foo#[] but stops there, sometimes listing the rest as if there were top-level.

  • Does not recognize inline Struct definitions as classes:

    Foo = Struct.new(:a, :b, :c) do
      def test; end
    end

    Imenu should recognize this method as Foo#test, not test. class Foo < Struct.new(...) is not an acceptable workaround because it creates an intermediary class (i.e. has side-effects).

Frequently asked questions

This module has no FAQs yet. Ask one?

TODO Appendix

󱌣 This module has no appendix yet. Write one?