An open API service indexing awesome lists of open source software.

https://github.com/otavioschwanck/ruby-toolkit.nvim

Ruby tools for neovim
https://github.com/otavioschwanck/ruby-toolkit.nvim

Last synced: 5 months ago
JSON representation

Ruby tools for neovim

Awesome Lists containing this project

README

        

# Ruby Toolkit

Refactoring tools for Ruby and Ruby on rails.

- [Ruby Toolkit](#ruby-toolkit)
- [Demo](#demo)
- [Extract Function](#extract-function)
- [Create function from word](#create-function-from-word)
- [Extract Variable](#extract-variable)
- [Dependencies](#dependencies)
- [Installation](#installation)
- [Packer](#packer)
- [Roadmap](#roadmap)

# Demo

## Extract Function
![extract-function](https://i.imgur.com/FQUklWt.gif)

## Create function from word
![create-function](https://i.imgur.com/m02E22a.gif)

## Extract Variable
![extract-variable](https://i.imgur.com/cGtwqxo.gif)

# Dependencies

- [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter)
- [nvim-treesitter-textobjects](https://github.com/nvim-treesitter/nvim-treesitter-textobjects)

# Installation

## Packer

```lua
{ 'otavioschwanck/ruby-toolkit.nvim', requires = { "nvim-treesitter/nvim-treesitter", "nvim-treesitter/nvim-treesitter-textobjects" }, config = function()
vim.keymap.set("n", "mv", "lua require('ruby-toolkit').extract_variable()")
vim.keymap.set("v", "mf", "lua require('ruby-toolkit').extract_to_function()")
vim.keymap.set("n", "mf", "lua require('ruby-toolkit').create_function_from_text()")
end}
```

## Lazy

```lua
{ 'otavioschwanck/ruby-toolkit.nvim', dependencies = { "nvim-treesitter/nvim-treesitter", "nvim-treesitter/nvim-treesitter-textobjects" }, keys = {
{ "mv", "lua require('ruby-toolkit').extract_variable()", desc = "Extract Variable", mode = { "v" } },
{ "mf", "lua require('ruby-toolkit').extract_to_function()", desc = "Extract To Function", mode = { "v" } },
{ "mf", "lua require('ruby-toolkit').create_function_from_text()", desc = "Create Function from item on cursor" },
} },
```

# Roadmap

- Telescope rails routes / insert routes / go to route controller.
- Rails i18n search / insert.