diff --git a/lua/lazyvim/plugins/extras/lang/ruby.lua b/lua/lazyvim/plugins/extras/lang/ruby.lua new file mode 100644 index 00000000..b193c433 --- /dev/null +++ b/lua/lazyvim/plugins/extras/lang/ruby.lua @@ -0,0 +1,72 @@ +return { + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + vim.list_extend(opts.ensure_installed, { + "ruby", + }) + end, + }, + { + "williamboman/mason.nvim", + opts = function(_, opts) + vim.list_extend(opts.ensure_installed, { + "solargraph", + }) + end, + }, + { + "neovim/nvim-lspconfig", + opts = { + servers = { + solargraph = {}, + }, + }, + }, + { + "mfussenegger/nvim-dap", + optional = true, + dependencies = { + "suketa/nvim-dap-ruby", + config = function() + require("dap-ruby").setup() + end, + }, + }, + { + "nvim-neotest/neotest", + optional = true, + dependencies = { + "olimorris/neotest-rspec", + }, + opts = { + adapters = { + ["neotest-rspec"] = { + rspec_cmd = function() + return vim.tbl_flatten({ + "bundle", + "exec", + "rspec", + }) + end, + }, + }, + }, + }, + { + "jose-elias-alvarez/null-ls.nvim", + opts = function(_, opts) + local nls = require("null-ls") + vim.list_extend(opts.sources, { + nls.builtins.formatting.rubocop.with({ + command = "bundle", + args = vim.list_extend({ "exec", "rubocop" }, nls.builtins.formatting.rubocop._opts.args), + }), + nls.builtins.diagnostics.rubocop.with({ + command = "bundle", + args = vim.list_extend({ "exec", "rubocop" }, nls.builtins.diagnostics.rubocop._opts.args), + }), + }) + end, + }, +}