local overrides = require("custom.configs.overrides") ---@type NvPluginSpec[] local plugins = { { "neovim/nvim-lspconfig", config = function() require "plugins.configs.lspconfig" require "custom.configs.lspconfig" end, }, { "williamboman/mason.nvim", opts = { ensure_installed = { "rust-analyzer", "clangd", "clang-format", "codelldb", } }, }, { "nvim-treesitter/nvim-treesitter", opts = overrides.treesitter, }, { "nvim-tree/nvim-tree.lua", opts = overrides.nvimtree, }, { "jose-elias-alvarez/null-ls.nvim", event = "VeryLazy", opts = function() return require "custom.configs.null-ls" end, }, { "rcarriga/nvim-dap-ui", event = "VeryLazy", dependencies = "mfussenegger/nvim-dap", config = function() local dap = require("dap") local dapui = require("dapui") dapui.setup() dap.listeners.after.event_initialized["dapui_config"] = function() dapui.open() end dap.listeners.after.event_terminated["dapui_config"] = function() dapui.close() end dap.listeners.after.event_exited["dapui_config"] = function() dapui.close() end end }, { "jay-babu/mason-nvim-dap.nvim", event = "VeryLazy", dependencies = { "williamboman/mason.nvim", "mfussenegger/nvim-dap", }, opts = { handlers = {} }, }, { "mfussenegger/nvim-dap", config = function(_, _) require("core.utils").load_mappings("dap") end }, { "rust-lang/rust.vim", ft = "rust", init = function () vim.g.rustfmt_autosave = 1 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, }, { "nanotee/zoxide.vim", lazy = false, }, { "othree/html5.vim", }, { "pangloss/vim-javascript", }, { "evanleck/vim-svelte", }, { "max397574/better-escape.nvim", event = "InsertEnter", config = function() require("better_escape").setup() end, }, { "stevearc/conform.nvim", config = function() require "custom.configs.conform" end, }, -- All NvChad plugins are lazy-loaded by default -- For a plugin to be loaded, you will need to set either `ft`, `cmd`, `keys`, `event`, or set `lazy = false` -- If you want a plugin to load on startup, add `lazy = false` to a plugin spec, for example -- { -- "mg979/vim-visual-multi", -- lazy = false, -- } } return plugins