Skip to content

nxhung2304/rails-tools.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rails-tools.nvim

A Neovim plugin for Ruby on Rails development. Zero-config, discoverable, context-aware.

Requirements

  • Neovim 0.9+
  • A Rails project

Optional: telescope.nvim, toggleterm.nvim, which-key.nvim

Installation

-- lazy.nvim
{
  "nxhung2304/rails-tools.nvim",
  ft = { "ruby", "eruby" },
  config = function()
    require("rails-tools").setup()
  end,
}

Configuration

Zero-config works out of the box. Override only what you need:

require("rails-tools").setup({
  modules = {
    rspec      = true,   -- RSpec runner (default: false)
    generators = true,   -- Rails generators (default: false)
    grape      = true,   -- Grape API support (default: false)
  },
  terminal = {
    provider  = "auto",        -- "auto" | "toggleterm" | "native"
    direction = "float",       -- "float" | "horizontal" | "vertical"
  },
  keymaps = {
    enabled = true,
    prefix  = "<leader>r",
  },
  alternate = {
    custom_mappings = {
      { pattern = "app/forms/(.+)_form.rb$",      target = "spec/forms/%1_form_spec.rb" },
      { pattern = "spec/forms/(.+)_form_spec.rb$", target = "app/forms/%1_form.rb" },
    },
  },
})

Usage

Central Menu

:Rails

Opens an interactive menu showing all available actions for the current file context.

Commands

Command Description
:Rails Open central menu
:Rails alternate Toggle between implementation and spec file
:Rails find {type} Find resources (models, controllers, views, specs, …)
:Rails routes Browse and navigate routes
:Rails routes! Force refresh routes cache
:Rails console Open Rails console
:Rails runner {code} Run a Ruby snippet via rails runner
:Rails runner Open prompt to enter code
:Rails generate {args} Run a Rails generator
:Rails spec nearest Run the spec nearest to cursor
:Rails spec file Run the current spec file
:Rails spec last Re-run the last spec
:Rails grape routes Browse Grape API endpoints
:Rails doctor Diagnose project issues

Keymaps

Default prefix: <leader>r

Keymap Action
<leader>rr :Rails — Open menu
<leader>ra :Rails alternate
<leader>rf :Rails find
<leader>ro :Rails routes
<leader>rc :Rails console
<leader>rx :Rails runner (prompt)
<leader>rs :Rails spec nearest (requires modules.rspec = true)
<leader>rS :Rails spec file (requires modules.rspec = true)
<leader>rg :Rails generate (requires modules.generators = true)

Telescope Integration

When telescope.nvim is installed, all pickers automatically use Telescope:

:Telescope rails models
:Telescope rails controllers
:Telescope rails routes
:Telescope rails specs

Falls back to vim.ui.select when Telescope is not available.

Health Check

:checkhealth rails-tools

License

MIT

About

Vibe coding a neovim plugin for rails

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors