local plugins = { { "williamboman/mason.nvim", opts = { ensure_installed = { "delve", "gofumpt", "goimports-reviser", "gopls", "json-lsp", "json-to-struct", "jsonlint", "python-lsp-server", "ruby-lsp", "rust-analyzer", "shellcheck", "yaml-language-server", "yamlfix", "yamlfmt", "yamllint", }, }, }, { "neovim/nvim-lspconfig", config = function() require "plugins.configs.lspconfig" require "custom.configs.lspconfig" end, }, { "rust-lang/rust.vim", ft = "rust", init = function () vim.g.rustfmt_autosave = 1 end }, { "simrat39/rust-tools.nvim", rf = "rust", dependancies = { "neovim/nvim-lspconfig", "mfussenegger/nvim-dap", }, opts = function () return require "custom.configs.rust-tools" end, config = function(_, opts) require('rust-tools').setup(opts) end }, { "mfussenegger/nvim-dap", rf = "rust", init = function() require("core.utils").load_mappings("dap") end }, { "saecki/crates.nvim", ft = {"rust", "toml"}, config = function(_, opts) local crates = require("crates") crates.setup(opts) crates.show() end, }, { "hrsh7th/nvim-cmp", opts = function() local M = require "plugins.configs.cmp" table.insert(M.sources, {name = "crates"}) return M end, }, { "jose-elias-alvarez/null-ls.nvim", ft = "go", opts = function () return require "custom.configs.null-ls" end, }, { "leoluz/nvim-dap-go", ft = "go", dependancies = "mfussenegger/nvim-dap", config = function(_, opts) require("dap-go").setup(opts) require("core.utils").load_mappings("dap_go") end } } return plugins